使用“我的”或“他们的”来解决git中的多个合并冲突的工具

时间:2015-04-17 02:02:02

标签: git tortoisegit

我有一种情况,我正在合并在git中具有多个二进制文件的变更集。我总是会使用“我的”或“他们的”来解决这些变化。我一直在使用TortoiseGit来完成我的大部分日常操作,但合并冲突对话框虽然允许多选,但不允许多个“使用他们的解析”。它一次只能解析一个文件。

是否有可用于此特定情况的工具(选择100多个文件并使用他们的解析)?

2 个答案:

答案 0 :(得分:1)

如果您能够使用git命令行程序,则可以指定ours合并策略的theirsrecursive选项以解析所有分别通过选择“我们的”更改或“他们的”更改来解决冲突。

git merge -s recursive -X ours other-branch
# or
git merge -s recursive -X theirs other-branch

recursive合并策略是默认策略,因此您可能不必包含-s recursive;为了完整性,它包含在上面。)

完整的说明可在git-merge documentation中找到:

  

递归策略可以采用以下选项:

     

<强>我们

     

此选项可以通过支持我们的版本来强制自动解决冲突的帅哥。来自其他树的更改没有   与我们方面的冲突反映在合并结果上。对于二进制文件   文件,全部内容都来自我们这边。

     

这不应该与我们的合并策略混淆,后者甚至不会查看其他树包含的内容。它丢弃了   其他树所做的一切,声明我们的历史包含了所有这些   发生在它里面。

     

<强>他们

     

这与我们的相反。

答案 1 :(得分:1)

图形幻觉

事实上,我在 TortoiseGit 中遇到了同样的问题。它似乎比真正的bug更像是一个缓存故障。冲突仍然出现在冲突窗口中,但是在解析它们的磁盘上。

为了更新冲突窗口,只需杀死在计算机上运行的TortoiseGitCache.exe ,下次检查冲突时: Tada!

检查版本:1.8.16.0(Windows 8.1 / 64位)

注意: 如果您直接在git命令行中解析,然后因为缓存而使用Tortoise检查,则会遇到同样的问题。