Я цитирую git учебник:
git diff shows the diff between HEAD and the current project state
Интересно, что это значит. Не является ли HEAD текущим активным проектом?
Спасибо
Я цитирую git учебник:
git diff shows the diff between HEAD and the current project state
Интересно, что это значит. Не является ли HEAD текущим активным проектом?
Спасибо
От " Указание версий"
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: получение разницы между рабочим деревом и другими коммитами:
git diff
предназначен для отображения незафиксированных изменений (т.е. работы, выполненной вами, но еще не посвященной текущему проекту).
Вот полное объяснение: http://git-scm.com/docs/git-diff