Подтвердить что ты не робот

Разница между git фиксацией и рабочим каталогом?

В справочных страницах git -diff указано, что git diff используется для

Показывать изменения между рабочим деревом и индексом или деревом, изменениями между индексом и деревом, изменяется между двумя деревьями или изменяется между двумя файлами на диске.

Но как насчет того, хотите ли вы показать разницу между фиксацией до HEAD и рабочим каталогом? Возможно ли это?

4b9b3361

Ответ 1

Да, но это зависит от вашего определения от того, что такое "текущее состояние проекта". Руководство по git diff продолжается.

Если вы заинтересованы в сравнении с поэтапными изменениями:

git diff [--options] --cached [<commit>] [--] [<path>...]

Эта форма предназначена для просмотра изменений, которые вы поставили для следующего фиксации относительно названного <commit>. Обычно вам нужно сравнить с последним фиксатором, поэтому, если вы не даете <commit>, по умолчанию он имеет значение HEAD. Если HEAD не существует (например, неродившиеся ветки) и <commit> не указывается, он показывает все поэтапные изменения. --staged является синонимом --cached.

Если вы заинтересованы в сравнении с неустановленными изменениями:

git diff [--options] <commit> [--] [<path>...]

Эта форма предназначена для просмотра изменений, которые у вас есть в рабочем дереве относительно имени <commit>. Вы можете использовать HEAD для сравнения с последним фиксатором или именем ветки для сравнения с концом другой ветки.

Или, если вас просто интересует сравнение любых двух коммитов (может быть HEAD):

git diff [--options] <commit> <commit> [--] [<path>...]

Это для просмотра изменений между двумя произвольными <commit> s.

Итак, вы можете запустить git diff someOldCommit HEAD, чтобы увидеть различия между someOldCommit и текущим HEAD.

Ответ 2

Это просто:

git diff HEAD

Объяснение: Текущие изменения в рабочем каталоге по сравнению с последним коммитом.