用于 git difftool 的万花筒

sva*_*ssr 23 comparison git difftool

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

所以我安装了ksdiff并将其设置为按照我的.gitconfig

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

跑步时

git difftool myBranch otherBranch 
Run Code Online (Sandbox Code Playgroud)

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

sva*_*ssr 44

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

万花筒“集成”配置窗口

安装ksdiff 后,单击“配置”按钮会将以下几行添加到您的.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
Run Code Online (Sandbox Code Playgroud)

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

git difftool myBranch otherBranch  -y -t Kaleidoscope
Run Code Online (Sandbox Code Playgroud)

——

笔记:

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