Из " Указание ревизий "
HEAD
называет коммит, на котором вы основали изменения в рабочем дереве.
Тамдругие головы (FETCH_HEAD
, ORIG_HEAD
и MERGE_HEAD
).См. Ответ Джефроми для получения дополнительной информации.
Дело в том, что по умолчанию git diff
фактически показывает различия между "текущим состоянием вашего проекта" (то есть вашими файлами в рабочем дереве) и индекс (не HEAD).
Другими словами, различия в том, что вы могли бы сказать git для дальнейшего добавления в индекс, но у вас все еще нет.
если вы сделаете git diff --cached
, , то будет сравнивать индекс с HEAD.
См. git book для получения дополнительной информации (ссылка на архив) :
Обычно используется простой запуск
$ git diff
, который покажет вам изменения в рабочем каталоге, которые еще не подготовлены для следующего коммита.Если вы хотите увидеть, что готовится к следующему коммиту, вы можете запустить
$ git diff --cached
, который покажет вам разницу между индексом и вашим последним коммитом;что вы будете делать, если запустите "git commit" без опции "-a".(В Git версий 1.6.1 и новее вы также можете использовать git diff --staged
, который может быть легче запомнить.) Наконец, вы можете запустить
$ git diff HEAD
, который показывает изменения в рабочем каталоге с момента вашей последней фиксации;что вы будете делать, если запустите "git commit -a".
См. также 365git: получение различий между рабочим деревом и другими коммитами :