Git 在重新基础期间解决冲突时,是否有用于接受这两个更改的本机命令?

Git 在重新基础期间解决冲突时,是否有用于接受这两个更改的本机命令?,git,rebase,merge-conflict-resolution,git-merge-conflict,Git,Rebase,Merge Conflict Resolution,Git Merge Conflict,在重新基址期间发生了合并冲突,Git现在要求我解决补丁。在两个更改都可以接受的情况下,如何让Git接受这两个更改而不必自己修改文件 例如,当两个变更都可以接受时: <<<<<<< HEAD const foo = require('./foo'); ======= const bar = require('./bar'); >>>>>>> some commit message >一些提交消息 建议在不使用G

在重新基址期间发生了合并冲突,Git现在要求我解决补丁。在两个更改都可以接受的情况下,如何让Git接受这两个更改而不必自己修改文件

例如,当两个变更都可以接受时:

<<<<<<< HEAD
const foo = require('./foo');
=======
const bar = require('./bar');
>>>>>>> some commit message
>一些提交消息

建议在不使用Git的情况下针对非常特定的情况执行此操作,但我希望使用本机Git命令执行此操作。提到要进行联合合并,但我找不到在此场景中如何进行联合合并的文档。

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

(这些文件名仅用于说明,实际上,您需要为大多数文件生成唯一的临时文件名),然后运行
git merge file

git merge-file --union ours base theirs
合并的结果现在位于名为
ours
的文件中<代码>基本和
它们的
可能会被丢弃

(Git可能应该包含一个脚本,该脚本执行三次提取,使用我们的、他们的或联合选项运行
Git合并文件
,并将结果放入工作树进行检查。它并没有,但我认为应该这样做。)


您必须非常小心使用union merge,因为它总是认为它成功了,即使它把结果弄得一团糟。

即使Git提供了这样一个命令,您仍然需要直观地检查每个冲突,并决定如何组合更改。也许他们中的一些人需要你的先于他们的,而其他人则需要他们的先于你的。对于发布的冲突,这两种方法看起来都是有效的,但大多数情况下都不是那么简单。我要补充的是,这个
:N:path/to/a/file
符号在-@neverendingqs中有解释,运行
git help revisions
阅读它。
git merge-file --union ours base theirs