Git:没有冲突的开放合并工具

时间:2016-12-13 07:58:02

标签: git git-merge merge-conflict-resolution

我遇到合并问题,但是git没有将文件标记为冲突。 当我尝试使用git mergetool打开文件时,git只会说:No files need merging

如何在三方比较中打开没有合并冲突的文件?

3 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

git merge --no-commit topic
git checkout --merge that_file
git mergetool that_file
git commit

也就是说,您避免成功合并创建提交,然后您假装that_file中存在冲突,然后您可以使用git mergetool处理该文件。最后,您提交结果。

答案 1 :(得分:0)

git mergetool使用.gitconfig [merge]部分中指定的工具 git mergetool --tool-help

结帐topic

将其中一个配置为git diff工具
例如:

git config --global diff.tool kdiff3

但是我知道git diff只能做2路差异 解决方案是签出3个不同的目录并运行kdiff3

答案 2 :(得分:0)

可悲的是,我无法复制@Filp Stefanov的成功,所以我用手工很难做到

(从存储库根目录开始)

git merge --no-ff --no-commit <topic>
git show HEAD:<file> > <file>.ours
git show MERGE_HEAD:<file> > <file>.theirs
$(git config merge.tool) <file>.ours <file> <file>.theirs
rm <file>.ours <file>.theirs
git add <file>
git commit

大声说,

  1. 将我们的文件版本显示为stdout并将其保存在某处
  2. 将其文件显示到标准输出并将其保存在某处
  3. 打开我们当前的合并工具
  4. 进行合并
  5. 删除.ours / .theirs文件
  6. 添加并提交合并的文件

如果这基本上是git本身所做的,我不会感到惊讶