Я просто переименовал свою локальную ветвь, используя
git branch -m oldname newname
но это только переименовывает локальную версию ветки. Как переименовать объект в github?
Я просто переименовал свою локальную ветвь, используя
git branch -m oldname newname
но это только переименовывает локальную версию ветки. Как переименовать объект в github?
Как уже упоминалось, удалите старый файл на Github и повторно нажмите, хотя используемые команды немного более подробные, чем необходимо:
git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local
Simple. Немного перебирая команды, команда git push по существу:
git push <remote> <local_branch>:<remote_branch>
Таким образом, выполнение push без указания local_branch по существу означает "не принимать ничего из моего локального репозитория и делать его удаленной ветвью". Я всегда считал, что это совсем глупо, но так оно и было.
Изменить: По сравнению с Git 1.7 существует альтернативный синтаксис для удаления удаленной ветки:
git push origin --delete name_of_the_remote_branch
Изменить: Как упоминалось @void.pointer в комментариях
Обратите внимание, что вы можете комбинировать две операции push:
git push origin :old_branch new_branch
Это приведет к удалению старой ветки и добавлению новой.
Просто удалите старую ветку и создайте новую.
Пример (только переименование удаленной ветки):
git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname
Вам также, вероятно, следует переименовать локальную ветку и изменить настройки для того, где нажать/вытащить.
Следующие команды работали для меня:
git push origin :old-name-of-branch-on-github
git branch -m old-name-of-branch-on-github new-name-for-branch-you-want
git push origin new-name-for-branch-you-want
Я нашел 3 команды, как вы можете изменить название ветки git, и эта команда является более быстрым способом сделать это
git branch -m old_branch new_branch # Rename branch locally
git push origin :old_branch # Delete the old branch
git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote
Если вам нужно поэтапно, вы можете прочитать эту замечательную статью
Вы можете сделать это без терминала, вам просто нужно создать ветку с новым именем и удалить старое после. Вы можете использовать этот пост для этого.
Вот что сработало для меня:
1.) Сначала создайте новую ветку: git push github newname: refs/heads/newname
2.) На сайте github, перейдите к настройкам и измените ветку по умолчанию на новое имя
3.) Удалить старое имя git push github --delete oldname
В этой статье показано, как сделать это очень легко.
1. Чтобы переименовать локальный ветвь Git, мы можем использовать команду Git branch -m для изменения имени:
git branch -m feature1 feature2
2. Если вы просто ищете команду для переименования удаленной ветки Git, это она "
git push -u origin feature2:feature3
Убедитесь, что у вас нет тегов на ветке, прежде чем вы это сделаете. Вы можете сделать это с помощью git tag
.
Другим способом является переименовать следующие файлы:
.git/refs/head/[branch-name]
в .git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/[branch-name]
в .git/refs/remotes/[all-remote-names]/new-branch-name
Переименуйте головку и пульты как на локальном ПК, так и на исходном сервере (-ах)/удаленном сервере.
Если ваше текущее имя-ветка содержит слэши (/
) git, создайте такие каталоги:
текущее имя-ветки: "awe/some/branch"
.git/refs/head/awe/some/branch
.git/refs/remotes/[all-remote-names]/awe/some/branch
имя ветки: "new-branch-name"
branch
из .git/refs/*/awe/some/
.git/refs/head/
.branch
из всех .git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
.branch
в new-branch-name
..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
awe/some/branch
в new-branch-name
(локальная и удаленная!)Информация: Этот способ может быть не лучшим, но он по-прежнему работает для людей, у которых могут быть проблемы с другими способами.
В моем случае мне понадобилась дополнительная команда
git branch --unset-upstream
чтобы моя переименованная ветвь нажала до origin newname
.
(Для удобства ввода), я сначала git checkout oldname
.
Затем запустите следующее:
git branch -m newname
git push origin :oldname
или git push origin --delete oldname
git branch --unset-upstream
git push -u origin newname
или git push origin newname
Этот дополнительный шаг может потребоваться только потому, что я (как правило,) настраиваю дистанционное отслеживание на своих ветвях через git push
-u
origin oldname
. Таким образом, когда я проверил oldname
, мне нужен только тип git push
, а не git push origin oldname
Если я НЕ, используйте команду git branch --unset-upstream
до git push origin newbranch
, git создает oldbranch
и нажимает newbranch
на origin oldbranch
- побеждает мое намерение.