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

Разница между git HEAD и текущим состоянием проекта?

Я цитирую git учебник:

git diff shows the diff between HEAD and the current project state

Интересно, что это значит. Не является ли HEAD текущим активным проектом?

Спасибо

4b9b3361

Ответ 1

От " Указание версий"

HEAD называет фиксацию, на которой вы основываете изменения в рабочем дереве.

Существуют другие головки (FETCH_HEAD, ORIG_HEAD и MERGE_HEAD). Подробнее см. Jefromi.

Дело в том, что по умолчанию git diff фактически показывает различия между "текущим состоянием вашего проекта" (т.е. ваши файлы на рабочем дереве) и индекс (не HEAD). < ш > Другими словами, различия - это то, что вы могли бы сказать git для дальнейшего добавления к индексу, но у вас все еще нет.

если вы выполняете git diff --cached, тогда он будет сравнивать индекс с HEAD.

Подробнее см. git для книги (ссылка на архив):

Обычно используется просто запустить

$ git diff

который покажет вам изменения в рабочем каталоге, которые еще не поставлены для следующего коммита. Если вы хотите посмотреть, что устраивается для следующей фиксации, вы можете запустить

$ git diff --cached

который покажет вам разницу между индексом и вашим последним фиксацией; что вы бы совершили, если вы запустили "git commit" без опции "-a". (В версии git версии 1.6.1 и более поздних версий вы также можете использовать git diff --staged, что может быть легче запомнить.) Наконец, вы можете запустить

$ git diff HEAD

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

См. также 365git: получение разницы между рабочим деревом и другими коммитами:

http://images.abizern.org.s3.amazonaws.com/365git/Feb11/Git%20Diff%202.png

Ответ 2

git diff предназначен для отображения незафиксированных изменений (т.е. работы, выполненной вами, но еще не посвященной текущему проекту).

Вот полное объяснение: http://git-scm.com/docs/git-diff