使用 将主题分支“B”合并到“A”git merge时,我遇到了一些冲突。我知道所有的冲突都可以使用“B”中的版本来解决。
git merge
我知道git merge -s ours。但我想要的是类似的东西git merge -s theirs。
git merge -s ours
git merge -s theirs
为什么不存在?git与现有命令发生冲突合并后,如何获得相同的结果?(git checkout来自 B 的每个未合并的文件)
git
git checkout
仅丢弃分支 A 中的任何内容(合并提交点到树的 B 版本)的“解决方案”不是我想要的。
一个类似的替代方案是--strategy-option(short form -X) 选项,它接受theirs. 例如:
--strategy-option
-X
theirs
git checkout branchA git merge -X theirs branchB
但是,这更等同-X ours于-s ours。关键区别在于-X执行常规递归合并,使用所选一侧解决任何冲突,而-s ours将合并更改为完全忽略另一侧。
-X ours
-s ours
在某些情况下,使用-X theirs而不是假设的主要问题-s theirs是删除文件。在这种情况下,只需git rm使用已删除文件的名称运行:
-X theirs
-s theirs
git rm
git rm {DELETED-FILE-NAME}
之后,-X theirs可能会按预期工作。
当然,使用git rm命令进行实际删除将首先防止冲突发生。