ВИКОРИСТАННЯ ВІЗУАЛЬНОГО ІНСТРУМЕНТУ ДІФА
Відповідь за замовчуванням (у командному рядку)
Верхні відповіді тут правильно показують, як переглянути кешовані / поетапні зміни в Index
:
$ git diff --cached
або $ git diff --staged
який псевдонім.
Замість цього запуск інструмента Visual Diff
Відповідь за замовчуванням викличе різні зміни в git bash (тобто в командному рядку або в консолі). Для тих, хто віддає перевагу візуальному зображенню поетапних відмінностей у файлі, в git є скрипт, який запускає інструмент візуального розгляду для кожного переглянутого файлу, а не показує їх у командному рядку, який називається difftool
:
$ git difftool --staged
Це зробить те саме, що git diff --staged
, за винятком будь-якого запуску інструмента "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
Щоб використовувати візуальний інструмент git, відмінний від типового, скористайтеся -t <tool>
опцією:
$ git difftool -t <tool> <<other args>>
Або перегляньте сторінку "difftool man", як налаштувати git для використання іншого за замовчуванням візуального розрізнення інструментів.
Приклад .gitconfig
записів для vscode як інструмента diff / merge
Частина налаштування 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
працює теж. Дивіться мою відповідь нижче