Если я запустил 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 в дополнение к индексуHEADindex. Это позволяет просматривать неустановленные изменения, которые могут отсутствовать в фиксации.В случае '
-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.
Если вы спросите меня, лучший визуальный отличит, который я видел в течение десятилетия.