上下文:我试图让git像其他一些源代码管理工具一样工作,同时试图说服他们仅使用git。同时,我需要将git作为奴隶来运行,做与scm相同的所有操作。
如何强制git在文件级别而不是大块级别上使用策略-X theirs
?
基本上,如果我在同一个文件中有两个分支中的两个大块,git可以合并这些大块以包括两个分支。但是,我想用mybranch
的文件覆盖theirbranch
的整个文件。
编辑:
反之亦然,可以在文件级与策略-X ours
合并,并在theirbranch
上对同一文件进行更改时覆盖mybranch
上的更改。
答案 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 add
和git commit
。
如果要列出两个分支中有差异的文件列表(两次任意提交):
git diff <branch 1> <branch 2> --name-only