Как я могу переименовать ветку в Git мой 'мастер', чтобы 'освободить'?
мы хотели бы применить новую политику для наших проектов, чтобы главная ветвь теперь называлась ветвью выпуска, чтобы было более ясно, как должна использоваться ветвь. Естественно, у нас будут развиваться и выпускать филиалы-кандидаты.
Я понимаю, что могу переименовать главную ветвь локально, просто используя следующее:
git branch -m master release
однако, это только локально. Даже если я подтолкну это к пульту дистанционного управления, голова все равно указывает на удаленный мастер отделение. Я хочу полностью избавиться от главной ветви и сделать локальную ветвь по умолчанию при первоначальном клонировании, быть релизом.
Как я могу этого достичь?
EDIT: кажется, что поскольку источник находится на сервере gitorious, я получаю ошибки удаления главной ветви. Теперь я пытаюсь понять, можно ли изменить это так, чтобы ветвь по умолчанию была "release".
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
имеет смысл, я бы не хотел менять эту настройку.однако, я обнаружил, что самый простой способ переименовать свой мастер если у вас есть доступ командной строки к удаленному серверу выполнить команду переименовать непосредственно на пульте дистанционного управления.
это сработало для меня:
- вход через SSH на удаленный сервер git
- перейдите в папку xxx.git вашего проекта
- run:
git branch -m master release
теперь удаленный репозиторий использует
release
как это ветка по умолчанию и всеgit clone
в этом репозитории от любого клиента по умолчанию будет проверена ветка выпуска.очень полезно также После настройки голого репозитория, чтобы настроить его на свой по необходимости.