Использование git difftool для просмотра различий во всем каталоге
У меня возникают проблемы при попытке использовать git difftool (в данном случае opendiff для mac), чтобы визуализировать различия, сделанные в последнем git commit. Я не хочу запускать opendiff для каждой пары файлов, которые изменились, я просто хочу запустить один экземпляр opendiff, который сравнивает весь каталог, поэтому я следовал совету из этого ответа, который должен использовать --dir-diff
, Я в конечном итоге с помощью этой команды:
git difftool HEAD^ HEAD --dir-diff
Проблема в том, что когда я запускаю эту команду, opendiff говорит, что существует 0 различий (хотя использование обычного diff покажет различия в нескольких файлах). В чем дело? Как правильно использовать difftool?
1 ответ
Файлы удаляются немедленно, потому что opendiff (инструмент командной строки) завершается сразу после запуска FileMerge (инструмент с графическим интерфейсом). Вам нужно написать короткий скрипт-обертку, который будет копировать левую и правую папки в (другое) временное местоположение и запускать openiff с этими местоположениями.
Изменить: вы можете настроить пользовательский difftool, который будет запускать FileMerge напрямую и ждать его завершения. Добавьте это к вашему ~/.gitconfig
[difftool "fm"]
cmd = /Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge -left \"$LOCAL\" -right \"$REMOTE\"
path =