Переименование удаленной ветки git - PullRequest
36 голосов
/ 17 августа 2011

У меня есть 2 ветки git: основная и экспериментальная.

Экспериментально стало хорошо, хочу сделать его мастером. Я подумал, что переименую, чтобы перемешать вещи, но вот что я получил:

nutebook:Stuff nathan$ git remote rename master old
error: Could not rename config section 'remote.master' to 'remote.old'

Я использую GitHub и Git-Tower.

Ответы [ 5 ]

56 голосов
/ 17 августа 2011

Ниже приведено руководство по переименованию вашей основной ветки. Так же легко будет переименовать вашу экспериментальную ветку.

Вот как я переименовал.

Во-первых, в вашем рабочем дереве локально переименуйте master во что-нибудь еще.

git branch -m master old-dev

Переименование ветки работает, пока вы находитесь на ветке, поэтому нет необходимости проверять что-то еще.

Затем локально переименуйте ветвь обслуживания (ветка 2.63) в мастер:

git branch -m 2.63-branch master

Теперь пора связываться с пультом. На всякий случай ты облажался, ты Возможно, вы захотите убедиться, что у вас есть текущая резервная копия. Сначала удалите Мастер пульта:

git push origin :master

А теперь дайте пульту вашего нового мастера:

git push origin master:refs/heads/master

Обновление: при создании новой ветки префикс refs /heads / необходимо на удаленной стороне. Если ветвь уже существует (как сделал мастер выше) на удаленной стороне требуется только название ветви.

... и ваш теперь переименованный старый мастер:

git push origin old-dev:refs/heads/old-dev

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

git push origin :2.63-branch

Клиенты теперь получают «новую» основную ветвь, когда тянут.

см. этот сайт.

4 голосов
/ 17 августа 2011

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

// delete the remote master branch by pushing null
// (the space in front of the semicolon) in this branch
git push origin :master
// push local experimental to remote master
git push origin experimental:master
1 голос
/ 16 января 2015

Если вы пользователь Mac, вы можете использовать GitHub Mac App (https://mac.github.com/) для переименования ветвей.

1 голос
/ 17 августа 2011

master - это филиал, а не пульт, как origin. если вы хотите, чтобы ваша экспериментальная работа была в вашей основной ветке, просто объедините ее в:

git checkout master
git merge experimental
0 голосов
/ 17 августа 2011

То, что вы пытались сделать, это переименовать удаленный репозиторий со «главного» на «старый».Чтобы переименовать ветку в другом репо, просто удалите ее с помощью

git push <remote> :<branch name>

, а затем нажмите как-нибудь еще.

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