Git 分支管理branch命令速查

QuibblerQuibbler 2020-01-15 约 6 分钟 1818 次阅读

开发中分支管理是每天都要打交道的事:开功能分支、切回主干修 bug、合并、删掉用完的分支,动作高频而固定。这篇把最常用的分支命令整理成速查——查看、创建、切换、删除、合并五大类,每条配使用场景与易错点,现代等价命令(git switch)也一并给出。更系统的讲解推荐直接读 Pro Git 中文版的分支章节。

1、查看分支

先看清现场再动手,三个查看命令如下:

git branch      # 查看本地分支(当前分支带 * 标记)
git branch -r   # 查看远程所有分支
git branch -a   # 本地与远程一起看

日常建议直接用 git branch -a:本地有哪些、远程有哪些、还差哪条没拉下来,一眼看清。只看名字不够时,git branch -v 会附带每个分支的最新提交,全部参数可查 官方 git-branch 文档。

2、创建与推送分支

创建新分支、从已有分支派生、推送到远程,一组命令如下:

git branch dev              # 基于当前分支创建 dev 分支(不切换过去)
git checkout -b dev master  # 基于 master 创建 dev 并切换过去
git checkout -b dev origin/dev  # 在本地创建远程已有分支的跟踪分支
git push -u origin dev      # 推送新分支到远程,并建立上游跟踪

两点值得记:checkout -b 新分支 已有分支 的第三种用法最实用——远程同事推了新分支,本地一条命令就能建出对应的跟踪分支。推送时加 -u(即 --set-upstream),之后这个分支直接 git pull / git push 即可,不用再写全 origin 分支名。

3、切换分支

切换用老命令或现代命令皆可:

git checkout dev    # 经典写法
git switch dev      # 现代写法(Git 2.23+)
git switch -c dev   # 创建并切换,等价于 checkout -b

git switch 是 2.23 版本后官方拆分出的专职命令:checkout 身兼切换、恢复文件、建分支数职,容易误伤(比如带路径时变成恢复文件),switch 只管切分支,语义更安全。新脚本和新习惯建议都用 switch。

4、删除分支

本地删除与远程删除分开处理:

git branch -d dev           # 安全删除:要求分支已完全合并进上游
git branch -D dev           # 强制删除:不检查合并状态
git push origin --delete dev  # 删除远程分支

-d 与 -D 的区别要记牢:小写 -d 会做合并检查,未合并的分支拒绝删除,防止误删丢代码;大写 -D 跳过检查直接删,只用于确认放弃的分支。远程删除用 push --delete,旧式的 git push origin :dev(空分支名推法)效果相同但不直观,不推荐。

5、合并分支

把指定分支合并进当前分支,冲突时走三步流程:

git merge feature     # 将 feature 合并到当前分支
git status            # 冲突时先看哪些文件待解决
git add 冲突文件      # 手动改完后标记已解决
git commit            # 完成合并提交

合并方向容易搞反:git merge feature 是把 feature 合进来,所以动手前先用 git branch 确认自己站在哪个分支上——通常是先切到 master,再 merge 功能分支。想保留合并轨迹(避免 fast-forward 抹掉分支历史)可以加 --no-ff。

6、常用命令速查表

五类动作浓缩成一张表,贴在手边直接查:

场景 命令
查看本地 / 远程分支 git branch / git branch -r
创建并切换分支 git switch -c dev
本地建远程已有分支 git checkout -b dev origin/dev
推送并建立跟踪 git push -u origin dev
安全删 / 强删本地 git branch -d dev / -D dev
删除远程分支 git push origin --delete dev
合并进当前分支 git merge feature

7、总结

分支管理五类命令各司其职:branch 系列管查看与删除,switch -c(或 checkout -b)管创建与切换,push -u 建立远程跟踪,merge 收拢成果。三个易错点值得反复提醒——删分支分清 -d 与 -D、合并前确认当前分支、未推送的本地分支别人看不见。更全的用法可翻 菜鸟教程的分支章节。对于日常开发,建议把第 6 节的速查表存进备忘录,配合 Pro Git 系统补课,分支操作就再没有含糊的空间。

相关推荐

git rebase调整commit提交的顺序
Git

git rebase调整commit提交的顺序

git rebase调整commit之间顺序一连提交了几笔commit,想调整一下顺序,把其中一笔提交置顶拿到最前面来,专门修改这一笔提交。当然如果想修改某一笔提交,可以reset到那笔commit,进行修改,完成之后再把之后的提交cherry-pick回去。git log查看提交记录,每笔提交记录太多,可以让每笔提交仅显示一行查看 --oneline。使用git rebase -i进入编辑,之前

1.4w
git blame:显示文件的每行提交记录信息
Git

git blame:显示文件的每行提交记录信息

git blame:显示文件的每行提交记录信息git blame对文件的每行信息都进行注释。能看到关于该行修改的每一次commit的哈希标签、作者和提交日期。Intellij IDEA在打开文件的行数右键点击Annotate显示文件每一行的记录信息。应该用的就是这个命令实现的功能。

5.9k
Git可视化工具:Sublime Merge
Git

Git可视化工具:Sublime Merge

Git可视化工具:Sublime Merge同事推荐了一个Git 可视化客户端:Sublime Merge ,由知名文本编辑器 Sublime Text 开发商打造。自己平时用的则是最好用的Git GUI工具:SourceTree,也体验了下Sublime Merge,用起来还不错。直接点击下载或购买后,安装即可。功能免费,完整功能无限制使用。但是订阅内容(比如更换主题)付费。Sublime Me

3.1k