跳到正文

合并

Merge

中级通用

合并(Merge)是 Git 把一个分支上的提交整合进另一个分支的操作。它解决多人或多条开发线并行修改后,如何汇集成果的问题:比如把登录页分支的改动加入主分支。

你可能会说:「登录页和首页分别改好了,能把两边的代码放到一起,保留各自的修改吗?」

读之前建议先了解

动手看看

main当前所在 HEADfeature/login初始化首页main · HEAD
1

项目已经有两个提交,你现在在 main 上。每个圆点是一次提交,记录了那一刻所有文件的样子。

要点

  1. 1

    先分清来源分支和目标分支

    你可以把登录页放在独立分支开发,完成后再把它合并进主分支。登录页分支提供改动,主分支接收改动;方向说反,结果就可能不是你想要的。

  2. 2

    Git 会比较两边的提交历史

    合并不只是把整个文件夹覆盖过去。Git 会依据两个分支的共同历史,判断各自新增了哪些修改,再尝试把它们放到同一条开发线上。

  3. 3

    遇到冲突需要人来决定

    如果你和 AI Agent 都改了同一段登录校验代码,Git 可能无法判断该保留哪种写法。这时合并会停下来,让我们查看差异、确定最终内容,再完成合并。

容易混淆的地方

分支是让工作暂时分开进行的开发线,合并是把一条开发线的成果整合到另一条。合并请求则是请团队审查、讨论并批准这次整合的协作流程,不等于合并本身。你可以先发起合并请求,确认没问题后再执行合并。

什么时候用

适合用

  • 你在独立分支完成了后台筛选功能,测试通过后,要把它整合进主分支。
  • 你和同事分别修改网站导航与定价页,准备把两条开发线的成果汇集起来。
  • AI Agent 在功能分支完成一组改动,你检查差异并验证后,决定将其纳入当前分支。

不适合用

  • 你只是想把远程仓库的新提交下载到本地,还没决定整合到当前分支;先用拉取提交的方式获取更新。
  • 你改错了配置,想撤销自己的一次提交;这不是汇集两条开发线,考虑回退提交或重置。
  • 你只想临时保存工作区里尚未完成的修改,稍后继续做;可以用贮藏,不需要为此合并。

练一练

你在登录页分支完成开发,同事同时更新了主分支上的导航。现在想让主分支包含两边的成果,应该怎么做?

让 AI 帮你做

请先查看当前 Git 状态和分支差异,说明把登录页功能分支合并进主分支会带来哪些提交与文件改动。确认目标分支后再合并;若出现冲突,先列出冲突位置和两边意图,等我确认处理方案,不要直接覆盖。

接下来学什么