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