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