Ответ 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.