git使用简述

Git的常用命令

Git 配置信息

  • 身份信息
    (- -global是全局参数,意味着本机中的所有仓库都共同使用。如果不加则只适用于本仓库。)
$ git config --global user.name "用户名"
$ git config --global user.mail "邮箱"
  • 忽略特殊文件
    在git工作区的根目录下创建.gitignore文件,将要忽略的文件填进去。
    (windows下新建txt文件,另存为.gitignore即可得到.gitignore文件,并且要将.gitignore文件add,commit之后才可忽略所需文件。)
/bin/ 忽略整个bin目录
*.txt 忽略全部txt文件
......
  • 配置别名
$ git config --global alias.ad add
$ git config --global alias.cit commit 

创建仓库

  • 创建一个新的本地仓库: $ git init

  • 克隆一个远程仓库

$ git clone ssh://user@domain.com/repo.git
$ git clone http://user@domain.com/repo.git
  • 远程库(以GitHub为例,创建完即可关联远程库)
    1.创建ssh-key(ssh-key存储在用户主目录下单.ssh文件中。id_rsa文件存储私钥,id_rsa.pub存储公钥):$ ssh-keygen -t rsa -C "youremail@example.com"
    2.登陆GitHub,打开“Account settings”,“SSH Keys”页面,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。

本地修改

  • 查看本地工作目录的状态: $ git status

  • 查看修改内容: $ git diff

  • 在下次提交前将修改文件到添加到stage状态: $ git add <file>

  • 在下次提交前将全部修改文件添加到stage状态: $ git add .

  • 提交stage状态中先前保存的文件: $ git commit -m "描述信息"

  • 提交stage状态中的全部保存文件: $ git commit -a

  • 删除文件
    1.直接资源管理器删除等价于$ rm <file>
    2.如果确实需要删除,再执行:$ git rm <file>,再执行:$ git commit -m "delete <file>"
    3.如果误删且还未提交可执行:$ git checkout -- <file>回退到被删之前的状态。
    4.如果误删且已提交则可执行:$ git reset --hard head^,另版本回到上一版本从而得到误删文件。

提交历史

  • 显示所有提交历史,从新到旧: $ git log

  • 显示所有命令历史:$ git reflog

  • 显示单个文件的历史记录: $ git log -p <file>

  • 显示谁在什么时间修改了文件中的什么内容: $ git blame <file>

分支

  • 显示所有分支,包括远程分支: $ git branch -av

  • 显示本地分支: $ git branch

  • 新建分支: $ git branch <new-branch>

  • 新建一个分支并跳转到新分支: $ git branch -b <new-branch>

  • 跳转到另一分支: $ git checkout <branch>

  • 根据远程分支创建一个新的对应本地分支: $ git checkout -b <branch> <remote/branch>

  • 删除分支: $ git branch -D <branch>

  • 合并分支到当前分支:$ git merge <branch>

  • 合并分支到当前分支并添加记录:$ git merge --no--ff -m "commit" <branch>

  • 将分叉的提交变为直线:$ git rebase <branch>

  • 存储分支状态:$ git stash

  • 查看储存分支:$ git stash list

  • 恢复分支并删除stash内容:$ git stash pop

  • 恢复分支且不删除stash内容:$ git stash apply

标签

  • 为当前最新提交建立一个标签(默认为head,也可指定commit id前7位)

轻量标签
一个特定提交的引用

$ git tag <tag-name> (例:v1.0)

附注标签:(建议使用)
存储在 Git 数据库中的一个完整对象。 它们是可以被校验的。其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息。并且可以使用 GNU Privacy Guard (GPG)签名与验证。
(-a指定标签名,-m指定说明文字)

$ git tag -a <tag-name> -m "标签详细说明" (例:-a v1.0 -m "正式版第一版")
  • 显示所有标签:$ git tag
  • 显示标签说明文字:git show <tag_name>
  • 推送一个标签:$ git push origin <tag_name>
  • 推送所有未推送标签:$ git push --tags
  • 删除本地标签:$ git tag -d <tag_name>
  • 删除远程标签:$ git push origin :refs/tags/<tag_name>

更新与推送

  • 获取远程库当前配置信息:$ git remote -v
  • 显示远程库信息(github的远程库名默认为origin): $ git remote show <remote>
  • 关联远程库:$ git remote add <shortname><url>(例:$ git remote add origin git@server-name:path/repo-name.git)
  • 下载远程库某分支的所有更新并且直接合并到当前head中:$ git pull <remote><branch>
  • 第一次推送master分支的所有内容:$ git push -u origin master,以后再次推送时:$ git push origin master
  • 推送本地某分支的所有更新到远程库中:$ git push <remote> <branch>
  • 删除远程库分支:$ git branch -dr <remote/branch>

撤销

  • 丢弃掉本工作目录下的所有更改(head表示当前版本):$ git reset --hard head
  • 丢弃工作区某文件的更改:$ git checkout -- <file>
  • 丢弃暂存区的修改:$ git reset head <file>
  • 回退到上一个版本(head^^上上个版本,head~10上十个版本):$ git reset --hard head^
  • 回退到指定版本:$ git reset --hard <commit id>

Git的使用建议

  • 多多使用commit,每一次的commit都应当与修改的内容相关。比如修改两个不同的bug,则每一个bug都应该有一个相关的commit。

  • 不要commit还未完成的工作。

  • 在commit之前需要完成代码的测试工作。

  • 如何写一个好的commit呢?
    1.这一次的修改动机是什么。
    2.这次修改和之前有什么区别。

  • 多使用分支来开发新功能或者修改bug。

  • 查看帮助文档总是有没错的:" $ git help

  • 建立新仓库的步骤:

  1. $ git init //初始化仓库

  2. $ git add .(文件name) //添加文件到本地仓库

  3. $ git commit -m "first commit" //添加文件描述信息

  4. $ git remote add <shortname><url>(例:$ git remote add origin git@server-name:path/repo-name.git) //链接远程仓库,创建主分支

  5. $ git pull <remote><branch> // 把本地仓库的变化连接到远程仓库主分支

  6. $ git push -u origin master //把本地仓库的文件推送到远程仓库

参考

git-book
http://www.runoob.com/w3cnote/android-tutorial-git-repo-operate.html);
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

内容概要:本文介绍了一个基于多传感器融合的定位系统设计方案,采用GPS、里程计和电子罗盘作为定位传感器,利用扩展卡尔曼滤波(EKF)算法对多源传感器数据进行融合处理,最终输出目标的滤波后位置信息,并提供了完整的Matlab代码实现。该方法有效提升了定位精度与稳定性,尤其适用于存在单一传感器误差或信号丢失的复杂环境,如自动驾驶、移动采用GPS、里程计和电子罗盘作为定位传感器,EKF作为多传感器的融合算法,最终输出目标的滤波位置(Matlab代码实现)机器人导航等领域。文中详细阐述了各传感器的数据建模方式、状态转移与观测方程构建,以及EKF算法的具体实现步骤,具有较强的工程实践价值。; 适合人群:具备一定Matlab编程基础,熟悉传感器原理和滤波算法的高校研究生、科研人员及从事自动驾驶、机器人导航等相关领域的工程技术人员。; 使用场景及目标:①学习和掌握多传感器融合的基本理论与实现方法;②应用于移动机器人、无人车、无人机等系统的高精度定位与导航开发;③作为EKF算法在实际工程中应用的教学案例或项目参考; 阅读建议:建议读者结合Matlab代码逐行理解算法实现过程,重点关注状态预测与观测更新模块的设计逻辑,可尝试引入真实传感器数据或仿真噪声环境以验证算法鲁棒性,并进一步拓展至UKF、PF等更高级滤波算法的研究与对比。
内容概要:文章围绕智能汽车新一代传感器的发展趋势,重点阐述了BEV(鸟瞰图视角)端到端感知融合架构如何成为智能驾驶感知系统的新范式。传统后融合与前融合方案因信息丢失或算力需求过高难以满足高阶智驾需求,而基于Transformer的BEV融合方案通过统一坐标系下的多源传感器特征融合,在保证感知精度的同时兼顾算力可行性,显著提升复杂场景下的鲁棒性与系统可靠性。此外,文章指出BEV模型落地面临大算力依赖与高数据成本的挑战,提出&ldquo;数据采集-模型训练-算法迭代-数据反哺&rdquo;的高效数据闭环体系,通过自动化标注与长尾数据反馈实现算法持续进化,降低对人工标注的依赖,提升数据利用效率。典型企业案例进一步验证了该路径的技术可行性与经济价值。; 适合人群:从事汽车电子、智能驾驶感知算法研发的工程师,以及关注自动驾驶技术趋势的产品经理和技术管理者;具备一定自动驾驶基础知识,希望深入了解BEV架构与数据闭环机制的专业人士。; 使用场景及目标:①理解BEV+Transformer为何成为当前感知融合的主流技术路线;②掌握数据闭环在BEV模型迭代中的关键作用及其工程实现逻辑;③为智能驾驶系统架构设计、传感器选型与算法优化提供决策参考; 阅读建议:本文侧重技术趋势分析与系统级思考,建议结合实际项目背景阅读,重点关注BEV融合逻辑与数据闭环构建方法,并可延伸研究相关企业在舱泊一体等场景的应用实践。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值