2014-06-29 70 views
1

我在嘗試使用git difftool(在這種情況下,使用opendiff for mac)來顯示最近git commit中的差異時遇到了問題。我不想爲每對已更改的文件啓動opendiff,我只想啓動一個比較整個目錄的opendiff實例,所以我遵循this answer的建議,即使用--dir-diff。最後我使用這個命令:使用git difftool查看整個目錄中的差異

git difftool HEAD^ HEAD --dir-diff 

的問題是,當我啓動該命令,了opendiff說有0的差異(即使使用常規差異會顯示在多個文件之間的差異)。這是怎麼回事?我如何正確使用difftool?

+0

這個答案指定比較工具必須能夠「填充兩個臨時目錄後的比較每次對兩個目錄層次結構」。 'opendiff'能做到嗎? – Chris

+0

您提供的命令在Linux上使用'meld'很適合我。也許'opendiff'問題? – buff

+0

也許'git log -p -1'會有用嗎? – twalberg

回答

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 =