Git diff HEAD vs --staged

В чем разница междуgit diff HEAD а такжеgit diff --staged? Я пробовал оба, но оба дают одинаковый результат.

 vhd15 мая 2013 г., 12:14
@Johnsyweb извините; "именно так" тот же выход
 VonC18 мар. 2015 г., 08:36
Вскоре (Git 2.3.4+, второй квартал 2015 года),git status -v -v Ясно покажу разницу между двумя различиями: см.мой ответ ниже
 Abizern15 мая 2013 г., 12:33
--staged это синоним--cached, Диаграмма вstackoverflow.com/questions/1587846/... объясняет разницу Помечено как дубликат
 Deestan15 мая 2013 г., 12:08
Ты можешь использоватьgit help  получитьочень подробно объяснения каждой команды git. В этом случае,git help diff даст очень подробное объяснение того, что--staged (ака--cached) делает.
 Viacheslav Kondratiuk15 мая 2013 г., 12:09
проверьте здесь:stackoverflow.com/questions/1587846/...

Ответы на вопрос(3)

git diff Просмотреть разницу между рабочей и рабочей папкамиgit diff --staged Посмотреть разницу между HEAD и Stagegit diff HEAD Посмотреть разницу между HEAD и рабочим каталогом



img src



img src

origin относится к исходному хранилищу, из которого он был клонирован.HEAD является ссылкой на последний коммит в текущей извлеченной ветке.Постановка и индекс оба одинаковыВ нашей системе существуют негласные измененияРабочий каталог, но Git не имеетЯ еще не записал их в историю версий.Поэтапные изменения очень похожи на неустановленные, за исключением того, что ония был отмечен как зафиксированный при следующем запуске git commit
 Nick Weavers21 мар. 2018 г., 16:32
Топ графика была полезна для меня. Понизить графику не так сильно.

нием новых версий (Git 2.3.4+, второй квартал 2015 года).git status -v -v

Увидетьсовершить 4055500 отМайкл Дж. Груберmjg, он делает хорошую работу, объясняя разницу междуgit diff HEAD а также :/git diff --staged

commitstatus: показать разность индексного рабочего дерева с-v -v

git commit а такжеgit status в длинном формате показать разницу между HEAD и индексом, если дано-v, Это позволяетпредварительный просмотр коммита.

Они также перечисляют отслеживаемые файлы с неустановленными изменениями, но без различий.

Вводить ''-v -v который показывает разницу между индексом и рабочим деревомк тому же кHEAD разность индексов Это позволяетпросмотр неустановленных изменений, которые могут отсутствовать в коммите.

В случае ''-v -v, дополнительные строки заголовка

Changes to be committed:
# and
Changes not staged for commit:

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

Решение Вопроса

Предположим, этот вывод для:git status

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   y
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   x
#
</file></file></file>

Как видите, есть один файл, измененный, но не подготовленный для фиксации, и добавленный новый файл, готовый для фиксации.

git diff --staged будет отображать только изменения в файлах впоставил» площадь.

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

 Geremia02 февр. 2016 г., 19:58
@ CarlosCampderrós Да, если вы укажете файл, он будет отличаться от его поэтапной и неустановленной версий.
 Geremia01 февр. 2016 г., 20:45
Есть ли способdiff изменения между поэтапной версией и неустановленной версией того же файла?
 Carlos Campderrós02 февр. 2016 г., 11:36
@geremiagit diff --staged делает это, если я вас правильно понял.
 vhd15 мая 2013 г., 13:31
не должен»это не отслеживаемые файлы на месте отслеживаемых файлов? Потому что, когда я делаю git status без добавления файла, он показывает непомеченный файл как неотслеживаемый файл.
 Carlos Campderrós15 мая 2013 г., 13:56
Если это новый файл, который вы не добавили ранее, он будет показан как неотслеживаемый и не появится ни в одномgit diff вариант. Если файл был добавлен и зафиксирован ранее, и вы внесли в него изменения, он будет отображаться как 'не организовано для коммита

Ваш ответ на вопрос