Показать как промежуточное, так и рабочее дерево в git diff?

Если я бегу git diff Я вижу изменения в моем рабочем дереве, и если я бегу git diff --staged (в качестве альтернативы --cached) тогда я вижу изменения, которые поставлены (ж / git add) но есть ли способ с git diff чтобы увидеть все за один раз?

3 ответа

Решение

Есть ли способ с помощью git diff увидеть все сразу?

Есть, с Git 2.4.0+ (апрель 2015).

Смотрите коммит 4055500 от Майкла Дж. Грубера mjg:

commit / status: показать разницу между индексом и рабочим деревом с помощью -v -v (или же -vv)

git commit а также git status в длинном формате показать разницу между HEAD и индексом, если дано -v, Это позволяет предварительно просмотреть сделанный коммит.

Они также перечисляют отслеживаемые файлы с неустановленными изменениями, но без различий.

Вводить ' -v -v ' (или же -vv) который показывает разницу между индексом и рабочим деревом в дополнение к HEAD разность индексов Это позволяет просматривать неустановленные изменения, которые могут отсутствовать в коммите.

В случае ' -v -v ' (или же -vv), дополнительные строки заголовка

Changes to be committed:

а также

Changes not staged for commit:

вставляются перед различий, которые равны тем, что в статусной части; последнему предшествует 50* - чтобы сделать его больше.

В случае ОП, простой git status -v -v (или же git status -vv) покажет как постановочные, так и не постановочные различия.

Если вы имеете в виду изменения между рабочим деревом и вашим коммитом HEAD (т.е. как поэтапные, так и не поэтапные изменения вместе), это просто делается с помощью:

git diff HEAD

Это можно сделать с помощью инструмента diffuse visual diff: он покажет три панели, если некоторые, но не все изменения будут выполнены. В случае конфликтов будет даже четыре панели.

Снимок экрана рассеянного с поэтапным и неустановленным редактированием

Вызвать его с

diffuse -m

в вашей рабочей копии Git.

Если вы спросите меня, лучшее визуальное отличие, которое я видел за десятилетие.

Другие вопросы по тегам