主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

什么是 Git 分支?

Git 分支机制通过在代码仓库中创建独立的开发分支,使开发团队能够在不影响主干代码(如main分支)稳定性的前提下,实现多功能的并行开发、问题修复和实验性探索。

作为现代版本控制系统,几乎所有版本控制系统都以不同形式支持分支机制,每个分支都代表一条完全独立的代码演进路径。

Git 分支流程


Git 分支的作用?

在团队协作开发项目中,开发者可以从主线(如mastermain分支)创建独立的个人开发分支。该分支完全由开发者自主管理,所有代码变更和提交都仅作用于该分支,既不会干扰主线的稳定性,也不会影响其他成员的并行开发。

在分支的功能开发完成并通过所有测试验证后,开发者需要发起合并请求(Pull Request/Merge Request)将代码变更合并至主线,待团队完成代码审查并确认无误后,即可安全删除该功能分支。

分支操作(包括创建、切换和删除)都是基于本地仓库的轻量级操作,执行时间通常在毫秒级,这使得分支管理极其高效。只有当需要将变更同步到远程仓库(如合并到主线)时,才需要进行网络通信。

Git 分支作用


Git 分支管理

Git 的分支管理机制为开发者提供了极大的灵活性,通过便捷的分支创建、切换、合并操作,以及高效的冲突处理能力和分支清理功能,使团队协作开发变得更加流畅高效。

✅ 以下是整理的 Git 分支管理常用命令速查表:

操作类别 命令 说明
创建分支 git branch <branch-name> 创建新分支
git checkout -b <branch-name> 创建并立即切换到新分支
查看分支 git branch 查看本地分支列表(当前分支前有*号)
git branch -v 查看分支最后一次提交信息
git branch -a 查看所有分支(包括远程)
切换分支 git checkout <branch-name> 切换到指定分支
git switch <branch-name> (Git 2.23+) 切换到指定分支
合并分支 git merge <branch-name> 将指定分支合并到当前分支
git merge --no-ff <branch-name> 禁用快进合并(保留分支历史)
删除分支 git branch -d <branch-name> 删除已合并的分支
git branch -D <branch-name> 强制删除未合并的分支
远程分支操作 git push origin <branch-name> 推送本地分支到远程
git push origin --delete <branch-name> 删除远程分支
git fetch -p 同步远程分支状态(清理已删除的远程分支本地记录)
冲突解决 git status 查看冲突文件
git diff 查看具体冲突内容
git mergetool 使用配置的合并工具解决冲突
分支重命名 git branch -m <new-name> 重命名当前分支
git branch -m <old-name> <new-name> 重命名指定分支
分支比较 git log branch1..branch2 查看branch2有但branch1没有的提交
git diff branch1..branch2 比较两个分支的代码差异

Git 分支管理实例

以下是经过实操验证的Git分支操作流程详解,助您深入掌握分支管理精髓:

✅ 首先,我们创建dev分支,然后切换到dev分支:

$ git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

✅ 然后,用git branch命令查看当前分支:

$ git branch
* dev
  master

git branch命令会列出所有分支,当前分支前面会标一个*号。

✅ 然后,我们就可以在dev分支上正常提交,比如对readme.txt做个修改,加上一行:

Creating a new branch is quick.

将修改的readme.txt文件提交dev分支:

$ git add readme.txt
$ git commit -m "branch test"
[dev b17d20e] branch test
 1 file changed, 1 insertion(+)

dev 分支的工作完成后,我们就可以切换回master主分支:

$ git checkout master
Switched to branch 'master'

切换回master分支后,再查看一个readme.txt文件,刚才添加的内容不见了!因为那个提交是在dev分支上,而master分支此刻的提交点并没有变。

✅ 现在,我们把dev分支的工作成果合并到master分支上:

$ git merge dev
Updating d46f35e..b17d20e
Fast-forward
 readme.txt | 1 +
 1 file changed, 1 insertion(+)

git merge命令用于合并指定分支到当前分支。合并后再查看readme.txt的内容,就可以看到和dev分支的最新提交是完全一样的。

注意到上面的Fast-forward信息,Git 告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。

当然,也不是每次合并都能 Fast-forward,我们后面会讲其他方式的合并。

✅ 合并完成后,就可以放心地删除dev分支了:

$ git branch -d dev
Deleted branch dev (was b17d20e).

删除后,查看branch,就只剩下master分支了:

$ git branch
* master

因为创建、合并和删除分支非常快,所以 Git 鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。



评论区 0
发表评论
教程介绍
Git 是一个分布式版本控制系统,用于高效管理文件的修改历史,支持多人协作开发。
14 章节
59 阅读
0 评论