SPT术语库

合并 Merge

feature/save-button 已完成,准备把功能分支带回 main,同时保留两边的提交历史。

Git约 10 分钟 · 从真实需求理解

1Merge 到底合并了什么?

GIT · MERGE HISTORY两条历史,在这里汇合

共同祖先 → main head + feature head → merge commit,main 指向新的汇合点。

01 · BASEa84c91e

common ancestor

MAIN HEADmainb12d430main: update copy
FEATURE HEADfeature/save-buttonc21f7abfeat: save draft
03 · MERGE COMMITd4e8b11Merge branch 'feature/save-button'2 parents
MAIN POINTERmain → d4e8b11two histories remain connected through one new commit

Merge 是把两条已经存在的提交历史在共同祖先处汇合。Git 不会把其中一条历史抹掉,而是创建一个新的 Merge Commit,让它同时记录两条父历史。

  • 共同祖先是 main 和 feature 两条历史都能追溯到的起点。
  • 两个 HEAD 代表合并前两条历史各自走到的最新提交。
  • 新的 Merge Commit 有两个父节点,main 可以移动到这个汇合点。

2Merge 不等于覆盖、复制或发布

Merge 处理的是 Git 的提交历史关系。它会尝试把两个分支的变化放进同一个历史结果;如果同一位置有冲突,仍需要人解决并完成后续提交。

  • Merge 不是把 feature 文件夹复制到 main;它会在提交图中留下父子关系。
  • Merge 不是强行覆盖 main,也不是把代码直接推送到远程仓库。

Pull Request 可以先让团队审查是否合并,但 Merge 是真正把两条提交历史汇合成 Git 记录的动作;冲突处理和发布仍是另外的边界。

3一次 Merge 由哪些部件组成?

BASEa84c91e共同祖先
main HEADb12d430
feature HEADc21f7ab
MERGEd4e8b112 parents
POINTERmain → d4e8b11new convergence point

Merge 保留两侧历史,并用一个新 Commit 把它们接在一起。

把 Merge 拆开看,先有共同祖先,再有合并前两条历史的 HEAD,最后由新的 Merge Commit 接住两个父节点;main 指针移动到这个新的汇合点。

  • BASE 是两条提交历史共同追溯到的祖先。
  • HEADS 是合并前 main 和 feature 各自停留的最新提交。
  • MERGE 是拥有两个父节点的新 Commit,而不是任意一侧的旧提交。
  • POINTER 表示合并完成后 main 指向新的汇合点。

4怎样把 Merge 需求交给 Agent?

请从共同祖先展示 main 和 feature/save-button 两个 HEAD,再把两条提交历史汇合到新的 Merge Commit;结果要明确显示两个父节点,并让 main 指向新的提交。请把 Merge、文件覆盖、复制项目、Pull Request、Push 和部署区分开,支持共享重播、Anatomy 键盘操作、暗色主题和 390px、320px 窄屏。

5不用背,看看你能不能判断

1 / 3

Merge 最接近下面哪种描述?

请选择一个最符合题意的答案

选择答案后自动进入下一题

社区延伸

看别人真实遇到过什么

社区帖子还没有关联到这个词条。