Переименование удаленной ветки git
У меня есть 2 git ветки: мастер и экспериментальный.
Эксперимент стал хорошим, я хочу сделать его хозяином. Я решил, что переименую, чтобы перетасовать вещи, но вот что я получил:
nutebook:Stuff nathan$ git remote rename master old
error: Could not rename config section 'remote.master' to 'remote.old'
Я использую GitHub и Git -Tower.
Ответы
Ответ 1
Ниже приведено руководство по переименованию главной ветки. Это будет так же легко переименовать вашу экспериментальную ветвь.
Вот как я переименовал.
Во-первых, в рабочем дереве локально переименуйте мастер на что-то иначе.
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/prefix необходимо на удаленной стороне. Если ветвь уже существует (как мастер сделал выше) на удаленной стороне требуется только название ветки.
... и ваш теперь переименованный старый мастер:
git push origin old-dev:refs/heads/old-dev
Наконец, удалите старое имя ветки обслуживания, чтобы предотвратить путаница:
git push origin :2.63-branch
Теперь клиенты получат "новую" ветвь master, когда они тянут.
см. этот сайт.
Ответ 2
Я думаю, что самый простой способ - проверить экспериментальную ветку, удалить удаленную ведущую ветвь, а затем нажать локальный экспериментальный вариант как новый удаленный мастер.
// 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
Ответ 3
master
- это ветвь, а не удаленная, например origin
. если вы хотите, чтобы ваша экспериментальная работа была связана с вашей главной ветвью, просто объедините ее в:
git checkout master
git merge experimental
Ответ 4
Если вы являетесь пользователем Mac, вы можете использовать приложение Mac GitHub (https://mac.github.com/) для переименования ветвей.
Ответ 5
Что вы пытались сделать, это переименовать удаленное репо с "master" на "old". Чтобы переименовать ветку на другое репо, просто удалите ее с помощью
git push <remote> :<branch name>
затем нажмите его как что-то еще.