避免合并两个分支上都有更改的文件

时间:2019-01-14 13:08:19

标签: git

上下文:我试图让git像其他一些源代码管理工具一样工作,同时试图说服他们仅使用git。同时,我需要将git作为奴隶来运行,做与scm相同的所有操作。

如何强制git在文件级别而不是大块级别上使用策略-X theirs

基本上,如果我在同一个文件中有两个分支中的两个大块,git可以合并这些大块以包括两个分支。但是,我想用mybranch的文件覆盖theirbranch的整个文件。

编辑:

反之亦然,可以在文件级与策略-X ours合并,并在theirbranch上对同一文件进行更改时覆盖mybranch上的更改。

1 个答案:

答案 0 :(得分:0)

根据Resolve Git merge conflicts in favor of their changes during a pull,如果要对其更改进行合并,则可以使用git merge -X theirs。但是,不能基于文件应用。

如果您要放弃“我们的”更改并使用文件的“其”版本,则只需执行检出操作即可:

git checkout <their revision or branch> -- <path to file>

或者,如this answer中所述,处于冲突状态时,还有一个--theirs选项:

git checkout --theirs <path>

在解决冲突之后,别忘了git addgit commit


如果要列出两个分支中有差异的文件列表(两次任意提交):

git diff <branch 1> <branch 2> --name-only