2017-02-14 96 views
0

В упаковке Arch Linux я столкнулся с термином git tip (What is a branch tip in Git?). Как пользователь git, я привык называть HEAD тем, что я считаю одной и той же или, по крайней мере, аналогичной концепцией.Какова связь между HEAD и кончиком в git?

Какая связь между этими двумя? Почему есть два имени для одного и того же (если они есть), и существуют ли обстоятельства, когда одно имя более подходит?

ответ

3

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

Если вы находитесь в ответвлении, и на его конце, то наконечник ветви также известен как HEAD.

Если вы выберете другую ветку, то наконечник этой ветки станет HEAD.

Если вы проверите случайное совершение, которое вообще не является ответвлением на ветку, например.

git checkout HEAD~3 

(который, как вероятно, не поставит вас в состояние на отдельные головки), то, что совершают известен как HEAD, хотя это не обязательно выстраиваются в линию с кончиком любого филиала.

1

Это вопрос тесно связан с самой модели Git: все фиксирует транзакцию (за исключением начальных фиксаций) имеют по крайней мере один из родителей:

   +--- G 
       + 
A +- B +- C +- D +- H 
    + + 
    +----|--- E 
      | 
      +--- F 

, что означает, что все фиксации можно рассматривать как узлы направленного ациклического графа, где начальные коммиты являются корнями; листья этого направленного ациклического графа являются концами ответвления.

Re HEAD из git(1):

Именованных указатели называются рефами отметить интересные моменты в истории. Ссылка может содержать имя объекта или имя другого ссылочного номера SHA-1. Refs с именами, начинающимися с ref/head/содержат имя SHA-1 последнего фиксатора (или «head») ветки , находящейся в стадии разработки. SHA-1 имена интересующих тегов хранятся в файле ref/tags /. A специальный ref named HEAD содержит имя текущей выписки.

Это описание не применяется так хорошо в отдельных сценариях HEAD (так как отрасль не действительно есть имя), но она по-прежнему описывает это очень хорошо, если вы думаете об этой ситуации в качестве анонимного филиала.

Короче говоря, HEAD является указателем фиксации (в манере говорить - это как правило, более точные думать о HEAD как указатель на реф, который, в свою очередь, указывает на коммит), в то время как отраслевые советы относятся к определенный тип фиксации, те, у кого нет потомков.