Как переименовать имя локальной и удаленной ветки Git?
У меня есть четыре ветки, такие как master → origin/regacy, FeatureA → origin/FeatureA. Как видите, я набрал неправильное имя.
Поэтому я хочу переименовать имя удаленной ветки (origin/regacy → origin/legacy или origin/master)
Я пробую команду ниже:
git remote rename regacy legacy
Но консоль Git вернула мне сообщение об ошибке.
error : Could not rename config section 'remote.regacy' to 'remote.legacy'
Как я могу решить эту проблему?
Ответы
Ответ 1
![Enter image description here]()
Вы не можете напрямую переименовать удаленную ветку. Вы должны удалить его, а затем снова нажать его.
Переименование ветки
# Rename the local branch to the new name
git branch -m <old_name> <new_name>
# Delete the old branch on remote - where <remote> is, for example, origin
git push <remote> --delete old_name
# Push the new branch to remote
git push <remote> new_name
# Reset the upstream branch for the new_name local branch
git push <remote> -u new-name
![Enter image description here]()
Важная заметка:
Когда вы используете git branch -m
(переместить), Git также обновляет вашу ветку отслеживания с новым именем.
git remote rename legacy legacy
git remote rename
пытается обновить удаленный раздел в вашем файле конфигурации. Он будет переименовывать пульт с заданным именем в новое, но в вашем случае он не нашел ни одного, поэтому переименование не удалось.
Но это не будет делать то, что вы думаете; он переименует ваше удаленное имя локальной конфигурации, а не удаленную ветвь.
Примечание. Серверы Git могут позволять вам переименовывать ветки Git с помощью веб-интерфейса или внешних программ (таких как Sourcetree и т.д.), Но вы должны помнить, что в Git вся работа выполняется локально, поэтому рекомендуется использовать приведенные выше команды. на работу.
Ответ 2
Если вы неправильно написали ветку и нажали эту кнопку в удаленный репозиторий, выполните следующие действия, чтобы переименовать эту ветку (на основе этой статьи):
-
Переименуйте свой локальный филиал:
-
Если вы находитесь в филиале, вы хотите переименовать:
git branch -m new-name
-
Если вы находитесь в другом филиале:
git branch -m old-name new-name
-
Удалите удаленную ветку old-name
и нажмите локальную ветку new-name
:
git push origin :old-name new-name
-
Сбросьте ветвь восходящего потока для локального ветки нового имени:
Перейдите к ветке, а затем:
git push origin -u new-name
Ответ 3
Кажется, есть прямой путь:
Если вы действительно хотите переименовать ветки удаленно (без переименования каких-либо локальных веток одновременно), вы можете сделать это с помощью одной команды, например
git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>
Переименование веток удаленно в Git
Смотрите оригинальный ответ для более подробной информации.
Ответ 4
Это также можно сделать следующим образом.
Сначала переименуйте локальную ветку, затем удаленную ветку.
Переименование локального ветки:
Если залогинен в другой ветке,
git branch -m old_branch new_branch
Если вы вошли в ту же ветку,
git branch -m new_branch
Переименование удаленной ветки:
git push origin :old_branch // Delete the remote branch
git push --set-upstream origin new_branch // Create a new remote branch
Ответ 5
Там нет прямого метода,
-
Переименовать местное отделение,
Моя текущая ветка мастер
git branch -m master_renamed
#master_renamed - новое имя мастера
-
Удалить удаленную ветку,
git push origin --delete master
#origin is remote_name
-
Нажмите переименованную ветку в удаленную,
git push origin master_renamed
Это...
Ответ 6
Это можно сделать даже без переименования локальной ветки в три простых шага:
- Зайдите в свой репозиторий в GitHub
- Создайте новую ветку из старой ветки, которую вы хотите переименовать
- Удалить старую ветку
Ответ 7
Я использую этот псевдоним git, и он в значительной степени выполняет работу автоматически:
git config --global alias.move '!git checkout master; git branch -m $1 $2; git status; git push --delete origin $1; git status; git push -u origin $2; git branch -a; exit;'
Использование: git move FROM_BRANCH TO_BRANCH
Это работает, если у вас есть имена по умолчанию, такие как master, origin и т.д. Вы можете изменить, как вы хотите, но это дает вам идею.
Ответ 8
Мне пришлось выполнить следующую задачу, чтобы переименовать локальную и удаленную ветку:
# Rename the local branch to the new name
git branch -m <old_name> <new_name>
# Delete the old remote branch
git push origin --delete <old_name>
# push to new remote branch - creates new remote branch
git push origin <new_name>
# set new remote branch as default remote branch for local branch
git branch --set-upstream-to=origin/<new_name> <new_name>