git 分支管理在 Git 中分支合并是一个常见的操作用于将一个分支的更改集成到另一个分支中。合并后会生成一个新的提交记录这个过程可以通过多种方式实现。下面详细介绍几种常用的合并方法及其命令。1. 快进合并 (Fast-Forward Merge)快进合并是最简单的情况当目标分支的最新提交是你要合并分支的一个祖先时Git 只需将指针向前移动即可完成合并。这种情况下不会生成新的提交记录。步骤切换到目标分支gitcheckout main合并源分支gitmerge feature如果main分支的最新提交是feature分支的一个祖先那么 Git 会执行快进合并直接将main分支的指针移动到feature分支的最新提交位置。2. 非快进合并 (No Fast-Forward Merge)如果你希望在合并时强制生成一个新的提交记录即使可以进行快进合并可以使用--no-ff选项。这样可以保留分支的历史记录方便后续追踪。步骤切换到目标分支gitcheckout main合并源分支并生成一个新的提交记录⚠️注意使用此命令时【暂存区域】不能有文件即所有修改需先提交否则会执行失败gitmerge --no-ff feature在 IDEA 终端窗口执行时会自动打开 Vim 编辑器生成合并提交信息输入:wq 回车保存退出即可。自定义合并提交信息在使用git merge --no-ff命令时Git 会默认为你生成一条合并提交信息。不过你也可以在合并时提供自定义的提交信息。要实现这一点可以使用--message或-m选项。示例假设你有一个main分支和一个dev分支你希望将dev分支的更改合并到main分支并生成一个新的提交记录同时提供自定义的提交信息。切换到main分支gitcheckout main合并dev分支并提供自定义的提交信息gitmerge --no-ff-mMerge dev into main with custom messagedev3. 解决合并冲突当两个分支都对同一个文件的同一部分进行了修改时Git 无法自动解决冲突需要手动解决。步骤切换到目标分支gitcheckout main尝试合并源分支gitmerge feature如果出现冲突Git 会在冲突文件中标记出冲突的部分。你需要手动编辑这些文件选择保留或修改冲突的内容。解决冲突后将文件标记为已解决gitaddconflicted-file完成合并gitcommit4. 拉取并合并远程分支当你从远程仓库拉取并合并分支时可以使用git pull命令它实际上是git fetch和git merge的组合。步骤切换到目标分支gitcheckout main拉取并合并远程分支gitpull origin feature5. 三方合并 (Three-Way Merge)在非快进合并中Git 会使用三方合并策略。三方合并涉及三个不同的提交基础提交 (Base Commit)两个分支的最近共同祖先。当前分支的最新提交 (HEAD)。要合并的分支的最新提交。Git 会比较这三个提交生成一个新的合并提交。快进合并 vs 三方合并快进合并目标分支没有新提交直接移动指针不产生合并提交三方合并两个分支都有各自的新提交需要生成合并提交记录两条分支的汇合点使用--no-ff可以强制使用三方合并即使可以快进保留分支历史轨迹。