Руководство разработчика Mozilla Developer Network для регулярных выражений предоставляет эту функцию экранирования:
function escapeRegExp(string){
return string.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
}
Вы правы, что продвижение к специализированные удаленные 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.
, Таким образом, Вы собираетесь рассматривать ГОЛОВУ как часть списка ответвления, даже если "это не означает много..."
Всегда существует ГОЛОВА, что точки к в настоящее время проверяли ответвление по удаленному repo (который может или не может быть ведущим устройством). Даже удаленные репозитории имеют текущие ответвления. Обычно это - ведущее устройство, и первое, что пришло на ум я не могу думать ни о какой причине, почему можно было бы хотеть изменить его, но это может быть изменено.
Мое предположение - то, что кто-то продвинул ответвление и назвал его ГОЛОВОЙ:
git push origin HEAD
У меня создалось впечатление, что выделенные удаленные репозитории (например, GitHub где никто не будет работать по ssh этот код, но только тянуть или нажимать и т. д.) не имел и не должен иметь ГОЛОВУ потому что в принципе не было рабочая копия. Не так?
У меня было точно такое же впечатление, как вы сказали.
И я даже не могу удалить эту ветку удаленного отслеживания origin / HEAD, клонированную из github, выполнив
git branch -d -r origin/HEAD
Это не повлияло.
Может Кто-нибудь скажет мне, как я могу удалить эту ветку удаленного отслеживания origin / HEAD?
Хотя я не нашел, почему создается origin / HEAD при клонировании из github, я нашел способ удалить его.
Новая версия git предоставляет
git remote set-head <name> -d
для удаления бесполезного указателя HEAD ветки удаленного отслеживания.
И мы также можем изменить тупое имя по умолчанию 'origin' на все, что захотим, используя
git remote rename origin <new_name>
Надеюсь, это может помочь. :)
Причина, по которой голый репозиторий может иметь HEAD, заключается в том, что он определяет, какая ветвь будет изначально извлечена после клонирования репозитория.
Обычно HEAD указывает на master, и это ветвь, которая извлекается, когда люди клонируют репозиторий. Установка его в другую ветку (путем редактирования HEAD в пустом репозитории) приводит к тому, что эта ветка извлекается при клоне.