在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提到进行联合合并,但在这种情况下,我无法找到有关如何执行此操作的文档。
答案 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
的文件中; base
和theirs
可能会被丢弃。
(Git可能应该包含一个执行三次提取的脚本,使用我们的任何一个,他们的或者工会选项运行git merge-file
,并将结果放入工作树中进行检查。它没有&#39 ; t,但我认为应该。)
你必须非常小心联合合并,因为它总是认为它成功了,即使它弄乱了结果。