Как я могу переименовать ветку в Git мой 'мастер', чтобы 'освободить'?


мы хотели бы применить новую политику для наших проектов, чтобы главная ветвь теперь называлась ветвью выпуска, чтобы было более ясно, как должна использоваться ветвь. Естественно, у нас будут развиваться и выпускать филиалы-кандидаты.

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

git branch -m master release

однако, это только локально. Даже если я подтолкну это к пульту дистанционного управления, голова все равно указывает на удаленный мастер отделение. Я хочу полностью избавиться от главной ветви и сделать локальную ветвь по умолчанию при первоначальном клонировании, быть релизом.

Как я могу этого достичь?

EDIT: кажется, что поскольку источник находится на сервере gitorious, я получаю ошибки удаления главной ветви. Теперь я пытаюсь понять, можно ли изменить это так, чтобы ветвь по умолчанию была "release".

5 66

5 ответов:

git checkout -b release master    # create and switch to the release branch
git push -u origin release        # push the release branch to the remote and track it
git branch -d master              # delete local master
git push --delete origin master   # delete remote master
git remote prune origin           # delete the remote tracking branch

оформить свою ветку master

git checkout master

создайте свою ветку выпуска и переключитесь на нее

git branch release
git checkout release

нажми на сервер

git push origin release

удалить ссылку на главную ветвь на сервере

git push origin :master

удалить локальную ветку master

git branch -d master

Как ранее заявляли другие, проблема здесь Gitorious, что не позволяет удалить головную ветвь по умолчанию. У вас есть два варианта обойти эту проблему. Один из них-войти в gitorious server (с ssh), найти Git-репозиторий на файловом сервере и добавить:

[receive]
        denyDeleteCurrent = warn

в конфиге.

более простой вариант - просто изменить ветку по умолчанию. Перейдите в репозиторий в веб-интерфейсе gitorious, нажмите "Редактировать репозиторий" и установите " Head Change the символический ref глава в репозитории git указывает на:". После этого вы можете удалить главную ветвь.

Примечание: этот ответ предназначен для автономных серверов git, где у вас есть доступ к командной строке.

так как пытается удалить remote master от клиента действительно не допускается и я предполагаю запрет denyDeleteCurrent имеет смысл, я бы не хотел менять эту настройку.

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

это сработало для меня:

  1. вход через SSH на удаленный сервер git
  2. перейдите в папку xxx.git вашего проекта
  3. run:git branch -m master release

теперь удаленный репозиторий использует release как это ветка по умолчанию и все git clone в этом репозитории от любого клиента по умолчанию будет проверена ветка выпуска.

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

В идеале, вы хотите настроить отслеживание, так что сделайте это:

git push origin HEAD:release
git checkout --track origin/release

теперь вы хотите удалить остальные?

git branch -d master
git push origin :master

просто!