重做合并仅一个文件


112

我正处于一个大型合并的中间,我曾经git mergetool解决过所有冲突,但是我还没有承诺,因为我想确保合并可以首先进行。

事实证明,在解决一个文件中的冲突时我犯了一个错误,我想git mergetool在该文件上重做冲突解决方案。由于这是一次大型合并,因此我想避免对所有其他文件重做合并,据我所知,我将对此进行处理git merge --abort

我知道我可以手动编辑文件,但是这很繁琐,并且只需重做该git mergetool操作就会容易得多。这可能吗?


Answers:


181

看来我在找错地方了。事实证明该解决方案非常简单。

git checkout -m <file>

这会将文件返回到其冲突状态。然后,我可以运行git mergetool以重做合并。


2
这种为我工作。索引最终处于合并状态,但是mergetool认为没有任何未完成的合并。我只是使用vi进行了合并,但是还是很奇怪。
克里斯·克莱兰

1
谢谢!这正是需要的。顺便说一句,与vi手动合并始终是一种乐趣,并且是完全令人满意的。向左移动或向右移动从来没有给我信心,合并将按预期进行
截至

1
此重复问题的答案中有一些有用的其他详细信息(具有相同的答案)。
约书亚·戈德堡

-4

您始终可以手动编辑文件。

如果您使用git merge --no-commit,那么您将仅具有准备好的提交(在自动和半自动之后)合并。

您仍然可以安全地编辑文件,仅在完全满意时才提交。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.