mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7mobile wallpaper 8mobile wallpaper 9mobile wallpaper 10mobile wallpaper 11mobile wallpaper 12mobile wallpaper 13mobile wallpaper 14mobile wallpaper 15mobile wallpaper 16mobile wallpaper 17mobile wallpaper 18mobile wallpaper 19mobile wallpaper 20mobile wallpaper 21mobile wallpaper 22mobile wallpaper 23
1013 字
3 分钟
笔记|Git学习笔记04|合并分支
2026-06-22

本系列所有文章都放在Git标签,总目录如下:

合集|Git学习笔记|系列总目录


4.0 本节命令行汇总#

git checkout master # 切换到目标分支
git merge 1.0-dev # 将指定分支合并到当前分支
git merge --no-ff 1.0-dev # 合并时禁止快进,强制创建合并提交
git config --global merge.ff false # 全局设置:合并时默认禁止快进
git add <file> # 暂存冲突解决后的文件
git commit # 完成冲突解决

4.1 合并分支的基本概念#

在上一节中,我们学习了如何创建和切换分支。当在不同分支上完成开发后,需要将分支的改动合并到一起。本节将学习 Git 的两种合并方式。

合并的本质:

将一个分支的提交历史”拼接”到另一个分支上。合并后,目标分支会新增一个合并提交,记录两条分支的交汇点。


4.2 第一种合并:普通合并(merge)#

普通合并适用于两条分支都有新的提交、且提交历史产生分叉的场景。

4.2.1 合并场景#

场景:项目主分支masterCommit 3处创建了1.0-dev分支。之后,master继续开发到Commit 51.0-dev也完成了1.0版本开发到Commit 4。现在需要将1.0-dev的功能合并回master

4.2.2 合并操作#

首先切换到目标分支(master),然后执行合并:

git checkout master
git merge 1.0-dev

第一步示意图

4.2.3 合并结果#

执行合并后,master分支会新增一个合并提交(Merge commit),这个提交有两个父提交,分别指向合并前的两个分支的最新提交。

4.2.4 合并冲突#

VS Code 提供了图形化的合并操作界面。

  1. 点击底部状态栏左侧的分支名
  2. 在弹出的分支列表中,选择要合并到当前分支的目标分支
  3. 右键点击目标分支,选择将 <分支名> 合并到 <当前分支>
  4. 或者在源代码管理面板中,点击...菜单,选择合并分支,然后选择目标分支

第二步示意图

第三步示意图

如果两个分支对同一文件的同一位置进行了不同的修改,Git 无法自动合并,此时会产生合并冲突。VS Code 会用特殊的标记显示冲突内容,需要手动选择保留哪一方的改动。

第四步示意图

合并冲突的标记格式如下:

<<<<<<< HEAD
当前分支的内容
=======
被合并分支的内容
>>>>>>> <分支名>

手动解决冲突后,保存文件,然后执行:

git add <file>
git commit

完成冲突解决。

合并完成后,1.0-dev分支的改动已经被完整地合并到了master中。

结果示意图


4.3 第二种合并:快进合并(fast-forward)#

快进合并发生在目标分支没有任何新提交、仅仅是被”甩在后面”的场景下。此时 Git 会直接将指针向前移动,而不创建新的合并提交。

4.3.1 快进场景#

场景:项目主分支masterCommit 3处创建了1.0-dev分支。之后,只有1.0-dev有新的提交(Commit 4),而master没有任何新提交。这种情况下,从master合并1.0-dev时就会触发快进合并。

由于master没有任何新提交,Git 会”快进”指针,直接将master移动到1.0-dev所在的位置。这个过程不会创建新的合并提交,历史仍然是线性的。

版本回退示意图

如果希望保留分支的完整历史记录,可以在合并时添加--no-ff参数,强制创建合并提交:

git merge --no-ff 1.0-dev

或者直接在配置文件中更改,这是一劳永逸的方法:

git config --global merge.ff false

示意图


4.4 本节小结#

知识点说明
普通合并(merge)两条分支都有提交时,创建合并提交
快进合并(fast-forward)目标分支无新提交时,直接移动指针
--no-ff 参数强制创建合并提交,保留分支历史
合并冲突同一文件同一位置的不同修改需要手动解决

本节完成了以下内容:

  • 理解了 Git 合并的基本概念
  • 掌握了普通合并(merge)的完整流程
  • 学会了快进合并(fast-forward)的原理与--no-ff参数的使用
  • 了解了在 VS Code 中进行合并操作的方法
  • 认识了合并冲突的产生原因与解决方法
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

笔记|Git学习笔记04|合并分支
https://luq-blog.xyz/posts/2026-06-22-git-notes-04-merge/
作者
Luquiescene
发布于
2026-06-22
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录