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 Руководство охватывает полный список доступных указателей, хотя их довольно сложно найти.

Другие вопросы по тегам