Почему & ldquo; происхождение / ГОЛОВА & rdquo; отображается при запуске & ldquo; git branch -r & rdquo ;?

Руководство разработчика Mozilla Developer Network для регулярных выражений предоставляет эту функцию экранирования:

function escapeRegExp(string){
    return string.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
}

145
задан Ben Hamill 10 December 2008 в 15:29
поделиться

5 ответов

Вы правы, что продвижение к специализированные удаленные repos работают намного лучше, когда они 'пусты', то есть, когда у них нет рабочих каталогов. Архитектура мерзавца разработана для обновления патчами или pull (fetch), который имеет смысл в распределенном VCS. Как в документах говорится где-нибудь, продвигая к ответвлению, которое в настоящее время проверяется, может привести к "неожиданные результаты" .

ГОЛОВА является частью требований для допустимого репозитория. Расположение Репозитория Мерзавца говорит, частично:

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.

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

13
ответ дан Paul 10 December 2008 в 15:29
поделиться
  • 1
    Это запустилось как комментарий, потому что я думал, что это было броском далеко " мог бы быть ответ here" подсказка/комментарий, пока я не понял I' d отредактировал комментарий достаточно, чтобы в основном записать, что ответ вместо броска далеко подсказывает! – Flexo♦ 24 September 2011 в 12:05

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

2
ответ дан codelogic 10 December 2008 в 15:29
поделиться
  • 1
    @towi Любой вызов, который может быть разрешен во время компиляции, может быть встроен. (В действительности можно теоретически встроить вызовы независимо с логикой отправки, если это оказывается Вами don' t на самом деле хочу что you' ve встраивается. Никакая идея, делает ли какой-либо компилятор C++ это, но это - вся предпосылка встраивания в JIT-компиляторах для динамических языков.) – gsnedders 23 May 2012 в 13:48

Мое предположение - то, что кто-то продвинул ответвление и назвал его ГОЛОВОЙ:

git push origin HEAD
-11
ответ дан Dustin 10 December 2008 в 15:29
поделиться
  • 1
    @gsnedders: МОНЕТЫ В ПЯТЬ ЦЕНТОВ могут удостовериться что типы they' ре, теоретически встраивающее, произошло, по крайней мере, однажды на сайте вызова, никакой такой гарантии с C++ так it' s намного тяжелее, чтобы знать, если it' s победа. Компилятор должен был бы быть в состоянии доказать это it' s, по крайней мере, часть времени, собираясь быть типом X во время компиляции, который звучит хитрым. Однако, не знайте, делают ли какие-либо компиляторы это, они могли бы существовать. – Joseph Garvin 26 June 2012 в 16:56

У меня создалось впечатление, что выделенные удаленные репозитории (например, GitHub где никто не будет работать по ssh этот код, но только тянуть или нажимать и т. д.) не имел и не должен иметь ГОЛОВУ потому что в принципе не было рабочая копия. Не так?

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

И я даже не могу удалить эту ветку удаленного отслеживания origin / HEAD, клонированную из github, выполнив

git branch -d -r origin/HEAD

Это не повлияло.

Может Кто-нибудь скажет мне, как я могу удалить эту ветку удаленного отслеживания origin / HEAD?

update

Хотя я не нашел, почему создается origin / HEAD при клонировании из github, я нашел способ удалить его.

Новая версия git предоставляет

git remote set-head <name> -d

для удаления бесполезного указателя HEAD ветки удаленного отслеживания.

И мы также можем изменить тупое имя по умолчанию 'origin' на все, что захотим, используя

git remote rename origin <new_name>

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

23
ответ дан 23 November 2019 в 22:26
поделиться

Причина, по которой голый репозиторий может иметь HEAD, заключается в том, что он определяет, какая ветвь будет изначально извлечена после клонирования репозитория.

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

57
ответ дан 23 November 2019 в 22:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: