Если я запустил git diff
, я вижу изменения в рабочем дереве, и если я запустил git diff --staged
(альтернативно --cached
), то я вижу изменения, которые устраиваются (w/git add
), но есть ли с помощью git diff
, чтобы увидеть все за один раз?
Показать как поэтапное, так и рабочее дерево в git diff?
Ответ 1
Есть ли способ с git diff видеть все за один раз?
Существует git 2.4.0+ (апрель 2015 г.).
См. совершить 4055500 из Michael J Gruber mjg
:
commit
/status
: показать diff с индексом-worktree с помощью-v -v
(или-vv
)
git commit
иgit status
в длинном формате показывают разницу между HEAD и индекс при задании-v
. Это позволяет просматривать фиксацию.Они также перечисляют отслеживаемые файлы с неустановленными изменениями, но без diff.
Ввести "
-v -v
" (или-vv
), который показывает разницу между индексом и worktree в дополнение к индексуHEAD
index. Это позволяет просматривать неустановленные изменения, которые могут отсутствовать в фиксации.В случае '
-v -v
' (или-vv
) дополнительные строки заголовкаChanges to be committed:
и
Changes not staged for commit:
вставлены перед различиями, которые равны значениям в статусной части; последнему предшествует 50 *
-
, чтобы он больше торчал.
В случае OP простой git status -v -v
(или git status -vv
) будет отображаться как поэтапный, так и нестационарный diff.
Ответ 2
Если вы имеете в виду изменения между рабочим деревом и вашим сообщением HEAD (т.е. как поэтапные, так и нестационарные изменения вместе), это делается только с помощью:
git diff HEAD
Ответ 3
diffuse инструмент визуального разграничения может сделать это: он отобразит три панели, если будут выполнены некоторые, но не все изменения. В случае конфликтов будет даже четыре панели.
Вызвать его с помощью
diffuse -m
в вашей рабочей копии Git.
Если вы спросите меня, лучший визуальный отличит, который я видел в течение десятилетия.