小编典典

是否有“git merge -s ours”的“他们的”版本?

all

使用 将主题分支“B”合并到“A”git merge时,我遇到了一些冲突。我知道所有的冲突都可以使用“B”中的版本来解决。

我知道git merge -s ours。但我想要的是类似的东西git merge -s theirs

为什么不存在?git与现有命令发生冲突合并后,如何获得相同的结果?(git checkout来自 B 的每个未合并的文件)

仅丢弃分支 A 中的任何内容(合并提交点到树的 B 版本)的“解决方案”不是我想要的。


阅读 193

收藏
2022-02-28

共1个答案

小编典典

一个类似的替代方案是--strategy-option(short form -X) 选项,它接受theirs. 例如:

git checkout branchA
git merge -X theirs branchB

但是,这更等同-X ours-s ours。关键区别在于-X执行常规递归合并,使用所选一侧解决任何冲突,而-s ours将合并更改为完全忽略另一侧。

在某些情况下,使用-X theirs而不是假设的主要问题-s theirs是删除文件。在这种情况下,只需git rm使用已删除文件的名称运行:

git rm {DELETED-FILE-NAME}

之后,-X theirs可能会按预期工作。

当然,使用git rm命令进行实际删除将首先防止冲突发生。

2022-02-28