Как переименовать ветвь "wizard" git 'в' release '?
Мы хотели бы применить новую политику для наших проектов, чтобы главная ветвь теперь называлась ветвью выпуска, чтобы убедиться, что более ясно, как использовать ветку. Естественно, мы будем разрабатывать и выпускать дочерние ветки.
Я понимаю, что я могу переименовать главную ветвь локально, просто используя следующее:
git branch -m master release
Однако это только локально. Даже если я нажимаю это на удаленный, HEAD все еще указывает на удаленную ведущую ветвь. Я хочу полностью избавиться от основной ветки и сделать локальную ветвь по умолчанию на начальном клоне, освободить.
Как я могу это достичь?
РЕДАКТИРОВАТЬ: Похоже, что, поскольку источник находится на критическом сервере, я получаю ошибки, удаляющие главную ветку. Я пытаюсь увидеть, если это можно изменить, чтобы ветвь по умолчанию была "release".
Ответы
Ответ 1
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
Ответ 2
Оформить свою основную ветку
git checkout master
Создайте свою ветвь релиза и переключитесь на нее
git branch release
git checkout release
Нажмите на сервер
git push origin release
Удалить ссылку главной ветки на сервере
git push origin :master
Удалить локальную ветвь мастера
git branch -d master
Ответ 3
В идеале вы хотите настроить отслеживание, так что сделайте следующее:
git push origin HEAD:release
git checkout --track origin/release
Теперь вы хотите удалить остальные?
git branch -d master
git push origin :master
Simple!
Ответ 4
Как было сказано ранее, проблема здесь Gitorious, которая не позволяет удалять ветвь HEAD по умолчанию. У вас есть две возможности обойти эту проблему. Один из них - войти в gitorious сервер (с ssh), найти git -репозиторий на файловом сервере и добавить:
[receive]
denyDeleteCurrent = warn
в конфигурацию.
Более простой вариант - просто изменить ветвь по умолчанию. Перейдите в репозиторий в великолепном веб-интерфейсе, нажмите "Редактировать репозиторий" и установите "Head Change the symbolic ref HEAD в репозитории git:". После этого вы можете удалить главную ветвь.
Ответ 5
Примечание. Этот ответ предназначен для самостоятельных серверов git, где у вас есть доступ к командной строке.
Так как попытка удалить remote master
из клиента действительно не разрешена, и я полагаю, что запрет denyDeleteCurrent
имеет смысл, я не хотел бы изменять этот параметр.
Однако я обнаружил, что самый простой способ переименовать ваш мастер, если у вас есть доступ к командной строке на удаленном сервере, - это запустить команду переименования непосредственно на удаленном компьютере.
Это сработало для меня:
- Вход через SSH на удаленный сервер git
- Перейдите в папку xxx.git вашего проекта.
- run:
git branch -m master release
Теперь удаленный репозиторий использует release
в качестве ветки по умолчанию, а любой git clone
в этом репозитории от любого клиента по умолчанию проверяет ветвь выпуска.
Очень полезно также после настройки голого репозитория для его настройки в соответствии с вашими потребностями.