9

目前我正在一个功能分支中工作,该分支很快将合并回master。我最近尝试过,但遇到了一些合并冲突,我必须手动修复。

那么,是否可以告诉 git 始终使用合并分支中的版本以避免预先合并冲突?在这种情况下,我手动修复了冲突,但总是从合并的分支中选择版本,这样可以节省一些繁琐的工作。

4

2 回答 2

18

您可以使用以下命令在 git 中执行此操作,假设这feature是您的功能分支的名称:

git merge -s recursive -X theirs feature

这表示使用“递归”合并策略,但使用“他们的”选项。这意味着当发生冲突时,它将通过从功能分支而不是您当前的分支中获取大块的版本来自动解决。(请注意,这与“他们的”合并策略完全不同,后者现已从 git 中删除。)

此功能是在 git v1.7.0 中引入的。

于 2011-05-28T09:12:32.760 回答
0

您不能使用递归的“我们的”策略。它会省略您没有冲突的更改。

您可以编写脚本获取冲突文件的文件名,然后执行 git checkout --ours -- filename 后跟 git add 文件名。

如果您一遍又一遍地遇到相同的冲突,请打开 rerere,这可能就足够了,因此您不必解决冲突。

希望这可以帮助。

于 2011-05-28T07:36:22.107 回答