ИСПОЛЬЗОВАНИЕ ВИЗУАЛЬНОГО 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
тоже работает Смотрите мой ответ ниже