【发布时间】:2010-09-15 11:49:55
【问题描述】:
当使用git merge 将主题分支“B”合并到“A”时,我遇到了一些冲突。我知道使用“B”中的版本可以解决所有冲突。
我知道git merge -s ours。但我想要的是git merge -s theirs。
为什么不存在?在与现有 git 命令发生冲突合并后,如何获得相同的结果? (git checkout B 中每个未合并的文件)
仅丢弃分支 A 中的任何内容(合并提交点到树的 B 版本)的“解决方案”不是我想要的。
【问题讨论】:
-
查看 SO 回答 git command for making one branch like another 了解所有当前模拟
git merge -s their的可能方法。 -
所以你并不是真的在寻找
git merge -s theirs(可以通过git merge -s ours和一个临时分支轻松实现),因为-s ours 完全忽略了merge-from 分支的变化。 .. -
@Torek - 让 Git 开发人员真的觉得除了 @ 之外还提供
theirs是 冒犯987654331@???这是 Git 中高级工程和设计问题之一的症状:不一致。 -
@jww 这里的问题不是“git merge -s ours”令人反感,而是它违反直觉。您可以从 OP 的问题中看到,如果要添加这样的功能,当他真正想要做的是“git merge -s recursive -X theirs”时,他会错误地使用它。想要合并另一个分支覆盖与另一个分支上的版本冲突是很常见的,但是用另一个完全丢弃当前更改的分支完全覆盖当前分支确实是一个例外情况。
-
每个人都应该仔细检查 OP 的“更新”,因为这个问题与
git merge -s ours无关。