ИСПОЛЬЗОВАНИЕ ВИЗУАЛЬНОГО DIFF ИНСТРУМЕНТА
Ответ по умолчанию (в командной строке)
Верхние ответы здесь правильно показывают, как просмотреть кэшированные / поэтапные изменения в Index:
$ git diff --cached
или $ git diff --stagedкоторый является псевдонимом.
Вместо этого запускается инструмент Visual Diff
Ответ по умолчанию выдаст изменения diff в git bash (т.е. в командной строке или в консоли). Для тех, кто предпочитает визуальное представление различий поэтапного файла, в git доступен скрипт, который запускает инструмент визуального сравнения для каждого просматриваемого файла, а не показывает их в командной строке, который называется difftool:
$ git difftool --staged
Это будет делать то же самое git diff --staged, что и за исключением того, что каждый раз, когда запускается инструмент diff (т. Е. Каждый раз, когда файл обрабатывается diff), он запускает инструмент визуального сравнения по умолчанию (в моей среде это kdiff3 ).
После запуска инструмента скрипт git diff будет приостановлен, пока ваш инструмент визуального сравнения не будет закрыт. Поэтому вам нужно будет закрыть каждый файл, чтобы увидеть следующий.
Вы всегда можете использовать difftoolвместо diffкоманд Git
Для всех ваших потребностей визуального различия, git difftoolбудет работать вместо любой git diffкоманды, включая все параметры.
Например, чтобы запустить инструмент визуального сравнения, не спрашивая, делать ли это для каждого файла, добавьте -yопцию (я думаю, что обычно вы захотите это !!):
$ git difftool -y --staged
В этом случае он будет извлекать каждый файл в инструменте визуальных различий, по одному, вызывая следующий после закрытия инструмента.
Или посмотреть разницу в конкретном файле, который находится в Index:
$ git difftool -y --staged <<relative path/filename>>
Для всех вариантов см. Справочную страницу:
$ git difftool --help
Настройка Visual Git Tool
Чтобы использовать инструмент визуального мерзавца, отличный от используемого по умолчанию, используйте -t <tool>параметр:
$ git difftool -t <tool> <<other args>>
Или обратитесь к справочной странице difftool, чтобы узнать, как настроить git для использования другого инструмента визуального сравнения по умолчанию.
Пример .gitconfigзаписи для vscode как инструмента сравнения / слияния
Часть настройки difftool включает изменение .gitconfigфайла, либо с помощью команд git, которые изменяют его за кулисами, либо редактируют его напрямую.
Вы можете найти его .gitconfigв своем домашнем каталоге, например, ~в Unix или обычно c:\users\<username>в Windows).
Или вы можете открыть пользователя .gitconfigв редакторе Git по умолчанию с помощью git config -e --global.
Вот примеры записей в моем глобальном пользователе .gitconfigдля VS Code как инструмента сравнения и объединения:
[diff]
tool = vscode
guitool = vscode
[merge]
tool = vscode
guitool = vscode
[mergetool]
prompt = true
[difftool "vscode"]
cmd = code --wait --diff \"$LOCAL\" \"$REMOTE\"
path = c:/apps/vscode/code.exe
[mergetool "vscode"]
cmd = code --wait \"$MERGED\"
path = c:/apps/vscode/code.exe
git status -vтоже работает Смотрите мой ответ ниже