Как настроить git-репозиторий, чтобы ветка, отличная от master, извлекалась после клонирования? - PullRequest
3 голосов
/ 21 мая 2010

Я пытаюсь настроить git-сервер с кучей репозиториев. Я планирую использовать модель ветвления, описанную в статье http://nvie.com/git-model. Таким образом, у меня будет по крайней мере две ветви (с именами master и develop ) в хранилище.

После клона ветвь master проверяется git. Есть ли опция git config, чтобы вместо нее была отмечена ветка development ?

В действительности я хочу, чтобы git clone my_repo_url вел себя как git clone -b develop my_repo_url.

Ответы [ 2 ]

5 голосов
/ 21 мая 2010

git clone будет:

создает и проверяет начальную ветвь, которая разветвляется из текущей ветки клонированного репозитория .

(т. Е. Где HEAD ссылается в этом удаленном репо)

Так что, если репо извлекается с помощью проявки на удаленном сервере, любой клон будет проверять ветку разработки.

Но, скорее всего, ваше удаленное git-репо является голым репо один (без рабочего дерева), чтобы позволить тянуть и толкать .
В этом случае вам нужно убедиться, что его HEAD ссылается на ветвь разработки.
Если в данный момент этого нет, клонируйте ее, извлеките ветвь разработки, добавьте тривиальное дополнение и посмотрите, будут ли какие-либо последующие клоны проверятьразвиваться.

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

Примечание: этот поток упомянуть, что вы не можете вообще влиять непосредственно на ГОЛОВУВ удаленном репо:

Удаленная команда предназначена для обновления данных в .git/refs/remotes, а не для обновления удаленного сервера.Для обновления удаленного сервера на самом деле есть только push.

На GitHub существует запрос для установки HEAD на репозитории GitHub (голый по определению).

1 голос
/ 21 мая 2010

git clone в настоящее время такой опции нет, но вы можете проверить другую ветвь после клона и изменить, где 'origin / HEAD' указывает на git remote set-head <remote>.

Вы можете использовать вместо git init + git remote add, который имеет опцию -m <master> + git remote update.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...