万花筒为git difftool


18

我尝试使用万花筒git difftool来比较两个分支。

所以我安装了ksdiff并将它设置为跟随我的.gitconfig

 [diff]
     tool = kaleidoscope
 [difftool "kaleidoscope"]
     cmd = ksdiff --changeset $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$MERGED") && pwd)/$(basename "$MERGED")

跑步的时候

git difftool myBranch otherBranch 

我收到错误 cannot use duplicate files within the same file list

Answers:


35

我找到了配置它的方法。在万花筒本身的Kaleidoscope菜单下,有一个名为Integration的链接,它打开了几个版本控制解决方案的配置窗口。

万花筒“集成”配置窗口

安装ksdiff后,单击Configure按钮将以下行添加到您的.gitconfig文件中。

[diff]
    tool = Kaleidoscope
[difftool "Kaleidoscope"]
  cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = Kaleidoscope
[mergetool "Kaleidoscope"]
  cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot
  trustExitCode = true

然后运行以下命令将连续打开每个不同的文件

git difftool myBranch otherBranch  -y -t Kaleidoscope

-

笔记:

  • -y以避免提示询问我们是否要为每个文件使用Kaleidoscope for difftool。默认答案是“是”。
  • -t Kaleidoscope这是optionnal,因为Kaleidoscope我们的.gitconfig文件中已经设置了默认的difftool 。

1
在我的情况下,我也不得不添加[merge] tool = Kaleidoscope到我的.gitconfig
stigi 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.