在rebase期间解决冲突时,是否有接受这两个更改的本机命令?

时间:2017-11-16 16:00:34

标签: git rebase merge-conflict-resolution git-merge-conflict

在rebase期间发生合并冲突,Git现在要求我解决该补丁。如果两个更改都可以接受,我如何告诉Git接受这​​两个更改而不必自己修改文件?

E.g。当两个变化都可以接受时:

<<<<<<< HEAD
const foo = require('./foo');
=======
const bar = require('./bar');
>>>>>>> some commit message

git: can I accept both changes in a merge conflict without editing files?建议在不使用Git的情况下针对特定情况执行此操作,但我希望使用本机Git命令执行此操作。 A comment提到进行联合合并,但在这种情况下,我无法找到有关如何执行此操作的文档。

1 个答案:

答案 0 :(得分:1)

要进行联合合并,必须首先提取所有三个输入:

git show :1:$path > base
git show :2:$path > ours
git show :3:$path > theirs

(这些文件名纯粹是为了说明 - 实际上你需要为这些文件的大部分生成一个唯一的临时文件名),然后运行git merge-file

git merge-file --union ours base theirs

合并后的结果现在位于名为ours的文件中; basetheirs可能会被丢弃。

(Git可能应该包含一个执行三次提取的脚本,使用我们的任何一个,他们的或者工会选项运行git merge-file,并将结果放入工作树中进行检查。它没有&#39 ; t,但我认为应该。)

你必须非常小心联合合并,因为它总是认为它成功了,即使它弄乱了结果。