36

前段时间我从我的分支创建了一个master分支。让我们称之为new_feature。在我工作的时候new_featuremaster分支遵循了它的正常演变。现在new_feature已经准备好合并到master我看到一些冲突,所有这些都在与实际新功能完全无关的文件中(比如一些配置文件和类似的在 上已更改master)。我将手动解决冲突,但我想知道,因为这种情况经常发生,我如何才能将new_feature分支合并到master同时始终保留master文件版本以防发生冲突?

我敢肯定这很容易,并且与“保留版本”之类的东西有关,但由于这是一个非常敏感的主题,我宁愿问也不愿道歉。

4

1 回答 1

39

正如评论中提到的,文档中有几种策略。你也可以在这里找到它们:http: //git-scm.com/docs/git-merge

您正在寻找git merge -s recursive -X oursgit merge -s recursive -X theirs取决于您所在的分支。请注意这些,因为您可能会意外错过其他分支对文件的更改,这些更改将被覆盖。

由于更多的控制,我更喜欢另一种方法是git checkout <other-branch> -- <list of files>. 这样我就不会意外地用错误的更改覆盖文件。

于 2013-07-17T15:48:30.530 回答