合并 Merge
feature/save-button 已完成,准备把功能分支带回 main,同时保留两边的提交历史。
Git约 10 分钟 · 从真实需求理解
1Merge 到底合并了什么?
共同祖先 → main head + feature head → merge commit,main 指向新的汇合点。
a84c91ecommon ancestor
b12d430main: update copyc21f7abfeat: save draftMerge 是把两条已经存在的提交历史在共同祖先处汇合。Git 不会把其中一条历史抹掉,而是创建一个新的 Merge Commit,让它同时记录两条父历史。
- 共同祖先是 main 和 feature 两条历史都能追溯到的起点。
- 两个 HEAD 代表合并前两条历史各自走到的最新提交。
- 新的 Merge Commit 有两个父节点,main 可以移动到这个汇合点。
2Merge 不等于覆盖、复制或发布
Merge 处理的是 Git 的提交历史关系。它会尝试把两个分支的变化放进同一个历史结果;如果同一位置有冲突,仍需要人解决并完成后续提交。
- Merge 不是把 feature 文件夹复制到 main;它会在提交图中留下父子关系。
- Merge 不是强行覆盖 main,也不是把代码直接推送到远程仓库。
Pull Request 可以先让团队审查是否合并,但 Merge 是真正把两条提交历史汇合成 Git 记录的动作;冲突处理和发布仍是另外的边界。
3一次 Merge 由哪些部件组成?
main HEAD
b12d430feature HEAD
c21f7abMerge 保留两侧历史,并用一个新 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 最接近下面哪种描述?
请选择一个最符合题意的答案
社区延伸
看别人真实遇到过什么
社区帖子还没有关联到这个词条。