1

我有两个分支,主分支和上游分支,有数千个要合并的文件和相同数量的合并冲突。

问题是,90% 的上游(“他们的”)文件是我想要保留的。除非文件已由特定人员编辑,否则有没有办法自动使用所有上游文件,而不是“git mergetool”所有这些文件?这样,我可以自己手动解决合并冲突,只需十几个文件。

在我看来,这是伪代码的工作方式:

git checkout master
git merge upstream --squash --all-of-theirs-except firstguy@mail.com secondguy@mail.com
git mergetool //For the remaining conflicts
git push origin master
4

1 回答 1

0

在此之前git mergetool,您可以从上游签出文件。然后您可以使用它git mergetool来解决其余文件的冲突。

git merge upstream squash
git checkout upstream -- <files that you want as "theirs">
git mergetool //Resolve the remaining conflicts.

要获取文件列表,您可以使用git log --author=<email> --name-only --oneline并解析输出以获取列表。或者,您可以git checkout -- path/to/a/directory/从特定目录中检出所有文件,而无需单独指定所有文件。

于 2013-10-07T19:14:20.823 回答