Почему «происхождения / HEAD» показано при запуске «GIT ветви -r»?

голоса
131

При запуске git branch -rпочему пылает это список origin/HEAD? Например, есть удаленный репо на GitHub, скажем, с двумя отделениями: мастером и удивительной функцией. Если я , git cloneчтобы захватить его , а затем перейти в мой новый каталог и список филиалов, я вижу это:

$ git branch -r
origin/HEAD
origin/master
origin/awesome-feature

Или что порядок было бы в (альфа? Я притворялся этот пример , чтобы сохранить идентичность в секрете невинной репо). Так что это HEADдело? Является ли это то , что последний человек , pushимел их HEADзаостренные в том, когда они вытолкнули? Будет не то, что всегда будет то , что именно они pushэд? HEADs двигаться ... зачем мне , что кто - то HEADуказал на на другой машине?

Я просто получаю ручку на пульте дистанционного слежения и такие, так что это один затяжной путаница. Благодаря!

EDIT: Я был под впечатлением, что посвященный удаленных сделок РЕПО (как GitHub, где никто не будет SSH и работать на этом коде, но только тянуть или толкать, и т.д.) так и не должны иметь голову, потому что там было, в основном, нет рабочей копии. Не так?

Задан 09/12/2008 в 22:36
источник пользователем
На других языках...                            


7 ответов

голоса
113

@robinst правильно.

В мерзавца, вы можете выбрать , какая ветвь извлечено по умолчанию (то есть , когда вы клонировать). По умолчанию origin/HEADбудет указывать на это.

На GitHub, Вы можете изменить это в настройках администратора для вашего GitHub репо. Вы также можете сделать это из командной строки с помощью

git remote set-head origin trunk

или удалить его полностью с помощью

git remote set-head origin -d

Пример . Посмотрите на "Переключить филиалы в раскрывающемся списке. trunkпроверяется, поэтому origin/HEADследует trunk.

Ответил 27/07/2011 в 03:14
источник пользователем

голоса
50

Причина голое хранилище может иметь голову, что, поскольку она определяет, какая ветвь сначала проверяется после клон репозитория.

Обычно, HEAD указывает на мастер, и что это отрасль, которая проверяется, когда люди клонировать репозиторий. Установка в другую ветвь (путем редактирования ГОЛОВУ в босых хранилище) результатах в этой отрасли проверяется на клоне.

Ответил 21/05/2010 в 16:08
источник пользователем

голоса
22

Я был под впечатлением, что посвященное удаленные сделки РЕПО (как GitHub, где никто не будет SSH и работать на этом коде, но только тянуть или толкать, и т.д.) не и не должен иметь голову, потому что там не было, в основном, не рабочей копия. Не так?

У меня было точно такое же впечатление, как вы сказали.

И я даже не могу удалить этот источник / HEAD удаленного отслеживания ветви клонированной из GitHub, делая

git branch -d -r origin/HEAD

Это не имело никакого эффекта.

Может кто-нибудь сказать мне, как я могу удалить его происхождения / HEAD удаленного отслеживания филиала?

Обновить

Хотя я не нашел, почему существует происхождения / HEAD создается, когда клон из GitHub, я найти способ, чтобы удалить его.

Новая версия мерзавца обеспечения

git remote set-head <name> -d

удалить ненужные ГОЛОВЫ указателя дистанционного отслеживания отрасли.

И мы можем также изменить немого имя по умолчанию «происхождения», чтобы все, что мы хотим с помощью

git remote rename origin <new_name>

Надеюсь, что это может помочь. :)

Ответил 30/07/2009 в 11:14
источник пользователем

голоса
13

Вы правы , что толкает на выделенную удаленную РЕПО работать гораздо лучше , когда они являются «голыми», то есть, когда они не имеют рабочие каталоги. Архитектура Git и предназначена для обновления с помощью патчей или pull( fetch), которая имеет смысл в распределенной VCS. Как документы говорят , где - то, толкая к отрасли , которая в настоящее время извлеченный может привести к «неожиданным результатам» .

НАЧАЛЬНИК является частью требований для действительного хранилища. Git Repository Layout говорит, в частности , говорится :

HEAD

A symref (see glossary) to the refs/heads/ namespace describing the currently active  
branch. It does not mean much if the repository is not associated with any working tree  
(i.e. a bare repository), but a valid git repository must have the HEAD file; some  
porcelains may use it to guess the designated "default" branch of the repository  
(usually master). It is legal if the named branch name does not (yet) exist.

Таким образом, вы будете видеть ГОЛОВА как часть списка ветви, даже если «это не означает, что много ...»

Ответил 10/12/2008 в 19:27
источник пользователем

голоса
3

Если «происхождение» является удаленное хранилище, то происхождение / HEAD идентифицирует ветвь по умолчанию на этом удаленном хранилище.

Пример:

$ git remote show
origin
$ git remote show origin
* remote origin
  Fetch URL: git@github.com:walkerh/pipe-o-matic.git
  Push  URL: git@github.com:walkerh/pipe-o-matic.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)

Обратите внимание на строку, которая говорит «ГОЛОВА ветвь: мастер». Это когда удаленный репозиторий позволяет клиентам знать, какая ветвь к проверке по умолчанию.

Ответил 07/05/2012 в 23:53
источник пользователем

голоса
2

Там всегда ГОЛОВА , что указует на данный момент извлеченной ветви на удаленном репо (который может или не может быть хозяином). Даже удаленные хранилища имеют текущие ветви. Обычно это хозяин, и с верхней части моей головы , я не могу думать о какой - либо причине , почему один хотели бы изменить его, но оно может быть изменено.

Ответил 10/12/2008 в 01:43
источник пользователем

голоса
-8

Я думаю, что кто-то толкнуло ветку и назвала его головой:

git push origin HEAD
Ответил 10/12/2008 в 00:30
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more