ORIG_HEAD, FETCH_HEAD, MERGE_HEAD и т. Д.
Есть много полезных ссылок на git (как это называется?), Например HEAD
, ORIG_HEAD
, FETCH_HEAD
, MERGE_HEAD
, @ {upstream} и т. д.
Есть ли какая-либо ссылка на это? Полный список с объяснениями?
4 ответа
git help revisions
поднимает http://git-scm.com/docs/gitrevisions, которая описывает все Наиболее распространенные способы ссылки коммитов:
HEAD
называет коммит, на котором вы основали изменения в рабочем дереве.FETCH_HEAD
записывает ветку, которую вы получили из удаленного репозитория с вашим последним вызовом git fetch.ORIG_HEAD
создается командами, которые перемещают вашHEAD
радикально, чтобы записать положениеHEAD
перед их работой, так что вы можете легко изменить кончик ветви обратно в состояние, прежде чем запустить их.MERGE_HEAD
записывает коммит (ы), которые вы объединяете в ветке, когда вы запускаете git merge.CHERRY_PICK_HEAD
записывает коммит, который вы выбираете вишней, когда запускаете git cherry-pick.
Из источника Git, вы также можете узнать о BISECT_HEAD
, REVERT_HEAD
, REJECT_NON_FF_HEAD
и несколько других, которые вам почти наверняка никогда не понадобятся.
Эта ссылка также объясняет суффиксы (^N
, ~N
, @{...}
), диапазоны (..
против ...
), и больше.
HEAD
: Текущая ссылка, на которую вы смотрите. В большинстве случаев это, вероятно, refs/heads/master
FETCH_HEAD
: SHA филиалов / удаленных голов, которые были обновлены в течение последнего git fetch
ORIG_HEAD
: При выполнении слияния это - SHA ветви, в которую вы сливаетесь.
MERGE_HEAD
: При выполнении слияния это - SHA ветви, с которой вы сливаетесь.
CHERRY_PICK_HEAD
: Когда вы выбираете вишню, это - SHA коммита, который вы выбираете.
Полный список этих ссылок можно найти, клонировав источники git:
git clone https://github.com/git/git.git
и подбрасывать _HEAD"
строка в .c
файлы. Они разбросаны повсюду, но все же их легко найти.
PS
git help revisions
не показывает список всех возможных именованных ссылок.
Вот что говорится в официальной документации Linux Kernel Git для редакций Git:
HEAD
называет коммит, на котором вы основали изменения в рабочем дереве.
FETCH_HEAD
записывает ветку, которую вы получили из удаленного репозитория с вашим последним вызовом git fetch.
ORIG_HEAD
создается командами, которые перемещают вашHEAD
радикально, чтобы записать положениеHEAD
перед их работой, так что вы можете легко изменить кончик ветви обратно в состояние, прежде чем запустить их.
MERGE_HEAD
записывает коммит (ы), которые вы объединяете в ветке, когда вы запускаете git merge.
CHERRY_PICK_HEAD
записывает коммит, который вы выбираете вишней, когда запускаете git cherry-pick.
Также для @{upstream}
:
<refname>@{upstream}
например,master@{upstream}
,@{u}
Суффикс
@{upstream}
на реф (краткая форма<refname>@{u}
) ссылается на ветку, над которой установлена ссылка. Недостающее значение по умолчанию соответствует текущей ветви.
Эти ссылки называются указателями. Это просто обычные указатели в терминах программиста на сущности с древовидной структурой, существующие в Git. Обратите внимание, что древовидная структура - это все, что состоит по крайней мере из одного коммита, то есть ветви, тега, тайника или чего-то подобного HEAD
, Что касается полного списка, я думаю, что единственное, что существует, это руководство:
http://git-scm.com/documentation
Пока нет полного списка доступных специальных указателей, таких как HEAD
Руководство охватывает полный список доступных указателей, хотя их довольно сложно найти.