)
本博客用于记录本人在工作中用到的Git命令、功能及对应的使用场景后续会逐步更新完善如有错误欢迎评论区指正。一、分支1.1 常用命令查看分支的常用命令命令作用git branch显示本地所有分支git branch -v列出本地所有分支并显示每个分支最后一次提交的摘要信息git branch -r显示远程跟踪分支git branch -a-a是--all的简写显示本地和远程跟踪分支git branch -vv查看本地分支和远程分支的关联关系git switch 分支名切换到已经存在的指定分支git checkout 分支名编解创建/删除分支的常用命令命令作用git switch -c 分支1 分支2-c--create简写基于分支2创建名称为分支1分支并切换到分支1。当分支2省略时默认基于当前分支创建。如果想使用该命令基于远程分支在本地创建同名分支分支2设置为远程跟踪分支格式通常为origin/branch_name分支1需设置为同名对应的为branch_name此时会基于远程跟踪分支分支2在本地创建同名分支并切换。但新建分支与远程分支不会建立关联。git switch -t origin/远程分支名等价于git switch -c 远程分支名 -t origin/远程分支名-t--track简写基于远程跟踪分支自动创建同名分支并切换同时建立关联。注意基于远程分支创建分支时需要先执行git fetch获取远程分支最新状态。git checkout -b new_branch_name branch_name2-b--branch简写同git switch -c命令git checkout --track origin/远程分支名等价于git checkout -b --track 远程分支名 origin/远程分支名同git switch -t命令git branch new_branch_name基于当前分支创建分支但不切换git branch -d branch_name删除分支通常是在目标分支出现BUG时会在本地基于目标分支新建一个分支用于BUG修复BUG修复完成并合入目标分支后使用该命令将修复分支删除。git branch -D branch_name强制删除分支1.2 关于origin在Git命令中有时会包含origin或origin/有时又没有初学者容易困惑。简单来说origin只是远程仓库的一个别名。当你从GitHub克隆一个项目到本地时Git会自动给这个远程服务器起名叫origin。至于什么时候加origin什么时候不加关键在于要操作的是本地分支还是远程分支。可通过以下三个场景理清1.2.1 什么时候不加origin场景操作本地电脑上的真实分支当你在本地进行日常的代码开发、提交和切换分支时不需要加origin因为Git默认你在操作本地仓库。创建/切换本地分支git switch release/1.0或git checkout release/1.0查看本地分支git branch提交代码到本地git commit -m update1.2.2 什么时候加origin不带斜杠场景告诉Git你要和哪个“远程服务器”通信当你要把本地代码推送到远程或者从远程拉去代码时你需要先指定目标仓库。origin在这里代表“远程服务器”通常可省略。推送到远程git push origin release/1.0从远程拉取git pull origin release/1.0添加新的远程仓库git remote add upstream url这里upstream是另一个别名1.2.3 什么时候加origin/带斜杠场景引用远程分支在本地留下的“快照”即远程跟踪分支。这是最容易混淆的地方。在本地通过git branch -r命令展示的origin/release/1.0并不是服务器上的真实分支而是上次执行fetch或pull时Git保存在本地的一个只读书签快照。它记录了上次执行fetch或pull后远程分支的状态。所以在基于远程分支创建分支之前要先执行fetch获取远程分支的最新状态。查看远程分支列表git branch -r 你会看到origin/main基于远程分支创建本地分支git checkout -b release/1.0 origin/release/1.0可以回忆一下该命令是否自动建立两者的关联