2

我在尝试使用 git difftool(在本例中为 mac 的 opendiff)来可视化最新 git 提交中的差异时遇到了麻烦。我不想为每对已更改的文件启动 opendiff,我只想启动一个比较整个目录的 opendiff 实例,所以我遵循了这个答案的建议,即使用--dir-diff. 我最终使用了这个命令:

git difftool HEAD^ HEAD --dir-diff

问题是当我启动这个命令时,opendiff 说有 0 个差异(即使使用普通 diff 会显示多个文件中的差异)。这是怎么回事?如何正确使用 difftool?

4

1 回答 1

1

文件会立即被删除,因为 opendiff(命令行工具)在启动 FileMerge(GUI 工具)后直接退出。您需要编写一个简短的包装脚本,将左右文件夹复制到(另一个)临时位置并使用这些位置启动 opendiff。

编辑:您可以配置一个自定义 difftool,它将直接启动 FileMerge 并等待它退出。将此添加到您的 ~/.gitconfig

[difftool "fm"]
cmd = /Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge -left \"$LOCAL\" -right \"$REMOTE\"
path =
于 2014-08-27T11:27:21.047 回答