(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 A
:A merge into B
,总是选择B
的内容作为合并结果,忽略A
的更改。虽然这看起来像是“无操作”,但实际上它在某些特定场景中有重要的用途。比如即使内容没有变化,Git 仍然会创建一个新的合并提交,明确记录这次合并操作。●
(heads/B) git merge -s theirs A
:A merge into B
,总是选择A
的内容作为合并结果,忽略B
的更改。theirs 策略并不是 Git 内置的策略,需自定义实现。●
(heads/B) git merge -s subtree A
:它允许你将一个项目的子目录与另一个项目的子目录进行合并。