Git 分支管理的具体操作步骤是什么?
Git 分支创建操作几乎能在瞬间完成,使用git branch dev命令即可新建分支,切换分支使用git checkout dev命令,这是 Git 从众多版本控制系统中脱颖而出的必杀技特性。
原因分析
Git 处理分支的方式之所以轻量,是因为 Git 保存的不是文件的变化或者差异,而是一系列不同时刻的快照。在进行提交操作时,Git 会保存一个提交对象 (commit object),该提交对象包含指向暂存内容快照的指针、作者的姓名和邮箱、提交时输入的信息以及指向它的父对象的指针。首次提交产生的提交对象没有父对象,普通提交操作产生的提交对象有一个父对象,而由多个分支合并产生的提交对象有多个父对象。这种设计使得创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。
解决方案
1. 查看当前分支
使用git branch命令列出本地所有分支,当前分支前会显示*字符。例如:
$ git branch iss53 * master testing
如果需要查看每一个分支的最后一次提交,可以运行git branch -v命令,输出示例:
$ git branch -v iss53 93b412c fix javascript issue * master 7a98805 merge branch 'iss53' testing 782fd34 add scott to the author list in the readmes
2. 创建新分支
使用git branch命令创建新的分支。例如创建一个名为 dev 的新分支:
git branch dev
创建后可以通过cat .git/HEAD验证 HEAD 目前是指向 master 的。新建分支后,Git 新建了一个指针叫 dev,新的 dev 分支和 master 指向同一个修改。
3. 切换分支
使用git checkout命令切换到指定的分支。例如切换到 dev 分支:
git checkout dev
也可以使用git checkout -b命令来创建新分支并立即切换到该分支下。当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容,所以多个分支不需要多个目录。
4. 合并分支
开发完成后,使用git merge命令将指定的分支合并到当前分支。例如在 master 分支上合并 dev 分支:
git checkout master git merge dev
Microsoft Build 2026 大会建议:仅通过通过评审过程的拉取请求合并分支,避免在没有拉取请求的情况下将分支合并到主分支。
5. 删除分支
使用git branch -d命令删除指定的分支。例如删除名为 test-branch 的分支:
git branch -d test-branch
如果要查看哪些分支已经合并到当前分支,可以运行git branch --merged命令;查看尚未合并的分支使用git branch --no-merged命令。
6. 分支命名规范
Microsoft 建议对功能分支使用一致的命名约定,一些建议包括:
- 用户/用户名/描述
- 用户/用户名/工作项
- 错误修复/描述
- 功能/feature-name
- feature/feature-area/feature-name
- 补丁/说明
注意事项
1. 切换分支时工作目录会被替换:当你切换到 testing 分支的时候,添加的新文件会被移除,原来被删除的文件又会出现。切换回 master 分支的时候,它们会重新出现。
2. 合并冲突处理:合并分支时可能会出现冲突,需要手动解决冲突后再提交。
3. 审阅者数量建议:Microsoft 建议两位审阅者是基于研究的最佳数量,团队应就对拉取请求创建者和审阅者的期望达成一致。
4. 长期分支策略:许多使用 Git 的开发者只在 master 分支上保留完全稳定的代码,还有一些名为 develop 或者 next 的平行分支,被用来做后续开发或者测试稳定性。一些大型项目还有一个 proposed(建议) 或 pu: proposed updates(建议更新) 分支。
5. 功能分支隔离:即使是较小的修补程序和更改也应该有自己的功能分支,为所有更改创建功能分支使审阅历史记录变得简单。
参考来源
来源:CSDN 博客 - Git 分支管理详解(2026 年 1 月 3 日)
来源:Git 官方教程 - 分支管理工具(2026 年 4 月 29 日)
来源:Microsoft Build 2026 大会 - Azure DevOps 分支策略(2026 年 2 月 17 日)
来源:w3cschool - Git 教程之分支管理详解(2016 年 12 月 16 日)