我有一种情况,我正在合并在git中具有多个二进制文件的变更集。我总是会使用“我的”或“他们的”来解决这些变化。我一直在使用TortoiseGit来完成我的大部分日常操作,但合并冲突对话框虽然允许多选,但不允许多个“使用他们的解析”。它一次只能解析一个文件。
是否有可用于此特定情况的工具(选择100多个文件并使用他们的解析)?
答案 0 :(得分:1)
如果您能够使用git
命令行程序,则可以指定ours
合并策略的theirs
或recursive
选项以解析所有分别通过选择“我们的”更改或“他们的”更改来解决冲突。
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检查,则会遇到同样的问题。