Git 合并模式 vs 合并策略:学习笔记

时间:2025-03-22 07:39:02
(heads/B) git merge -s recursive A:(默认行为)通过三路合并算法来合并(共同祖先、当前分支和目标分支的最新提交来进行三路合并),如果满足快进条件,Git会进行快进合并,否则创建一个新的合并提交。
(heads/B) git merge -s resolveA:类似于 recursive,不会尝试自动解决某些类型的冲突,而是直接标记冲突,让用户手动解决。
(heads/B) git merge -s octopus branch1 branch2 branch3:用于合并多个分支到一个分支中,适合一次合并多个上游分支。
(heads/B) git merge -s ours AA merge into B,总是选择B的内容作为合并结果,忽略A的更改。虽然这看起来像是“无操作”,但实际上它在某些特定场景中有重要的用途。比如即使内容没有变化,Git 仍然会创建一个新的合并提交,明确记录这次合并操作。
(heads/B) git merge -s theirs AA merge into B,总是选择A的内容作为合并结果,忽略B的更改。theirs 策略并不是 Git 内置的策略,需自定义实现
(heads/B) git merge -s subtree A:它允许你将一个项目的子目录与另一个项目的子目录进行合并。