Вы проверили в настройках администратора? В моем текущем проекте на github нет никаких веток, но вы можете переименовать репозиторий там, поэтому я думаю, что вы можете переименовать и ветки.
evanmcdonnal
12
@evanmcdonnal Нет, вы не можете переименовать ветку Git с сайта GitHub.
Эндрю Маршалл
Ответы на этот вопрос почти всегда неверны. Вопрос не в том, как переименовать ветку git, а в том, как переименовать ветку github . Многие вещи на github связаны с веткой, что означает, что любой ответ должен охватывать эти вещи. Например, переименование мастера в main
gman
@ gman Что бы это ни стоило, кажется, что эти ответы ответили на дух вопроса ОП. Вопрос ОП, возможно, был не совсем правильно сформулирован, с технической точки зрения, или уместной проблемой, которую вы сейчас рассматриваете. Но тогда этот вопрос не связан с глубокими техническими знаниями git или GitHub. С этой точки зрения можно считать это «новичком» или элементарным вопросом. Как таковой, он сформулирован и ответил соответственно для этой аудитории. Разочаровывающе, конечно, но я думаю, что эти Q, эти Ответы уместны / актуальны, особенно для pre BLM git / Hub Q.
SherylHohman
Ответы:
309
Как уже упоминалось, удалите старую версию на Github и повторно нажмите, хотя используемые команды немного более многословны, чем необходимо:
Просто. Немного рассредоточив команды, команда git push по сути:
git push <remote> <local_branch>:<remote_branch>
Таким образом, выполнение push без указания local_branch означает, по сути, «ничего не брать из моего локального репозитория и сделать его удаленной веткой». Я всегда думал, что это совершенно глупо, но так оно и есть.
Редактировать: Начиная с Git 1.7, есть альтернативный синтаксис для удаления удаленной ветви:
Обратите внимание, что позиционные аргументы в командах оболочки были проблематичны в более старых (до 2.8?) Версиях git, поэтому псевдоним может варьироваться в зависимости от версии git. Смотрите это обсуждение для деталей.
Обратите внимание , что вы можете комбинировать 2 нажимные операции: git push origin :old_branch new_branch. Это удалит старую ветку и вытолкнет новую.
void.pointer
4
Есть ли какая-то причина, по которой новую ветвь нельзя вытолкнуть перед удалением старой? Я лично предпочитаю процессы, где операция удаления происходит после того, как операция создания успешна, на случай, если что-то пойдет не так.
jmort253
7
Не работает. Он просто вернет ветку на Github со своим старым именем.
Джефф
1
@AdamParkin 1. git branch -m new_branch(переименуйте old_branch в new_branch) 2. git commit -m 'msg', 3. git push4. Ммм, old_branch появляется в Github, вопрос Google, и меня выводят на ваш ответ 5. git push origin :old_branch(говорит, что он удален) 6. git push origin new_branch... завершает, затем говорит * [new branch] new_branch -> old_branch. Вернитесь к Github и old_branchснова появитесь . Если я удаляю в веб-интерфейсе Github, у меня есть опция «Восстановить», поэтому кажется, что нажатие на new_branch просто восстанавливает.
Kcvin
2
Следует помнить одну вещь: когда вы переименовываете ветку, все открытые запросы на этот запрос автоматически закрываются. Нам пришлось переименовать ветку обратно, а затем снова вручную открыть все запросы на извлечение ....
Это краткий ответ, который работает. Кстати, первая команда также может быть указана последней в ответе.
Эрик Ван
этот ответ охватывает git not github
gman
1
На самом деле, я просто делал это дважды, и это работало на github.
spozun
17
Я нашел 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
Если вам нужен шаг за шагом, вы можете прочитать эту замечательную статью
git push --set-upstreamявляется наиболее важной частью, если вы случайно изменили имя ветки с помощью приложения github перед удалением удаленной ветки.
Луи Ян
этот ответ охватывает git not github
gman
12
Просто удалите старую ветку и создайте новую.
Пример (исключительно переименование удаленной ветви):
Это для git, а GitHub находится под git, поэтому он будет работать и работать со мной и с другими
Абдельрахман Мохамед
Это не работает Попробуйте первый и второй шаги git branch -m new-name && git push origin :master new-name. Это не удастся. Если этот ответ касается только git, а не github, тогда этот вопрос является дубликатом нескольких других вопросов и должен быть закрыт. Если это действительно о github, то ответ должен охватывать github. Этот ответ не дает.
мужчина
6
Вы можете сделать это без терминала, вам просто нужно создать ветку с новым именем и удалить старую после. Вы можете использовать этот пост, чтобы сделать это.
Щелкните правой кнопкой мыши свою ветку, чтобы переименовать, на боковой панели. Выберите «Переименовать ветку ...» из контекстного меню и переименуйте его.
Спасибо, но мне пришлось переключиться на ветку, а также импортировать ее.
Флэш Шеридан
1
этот ответ охватывает git not github
gman
0
Эта статья показывает, как это сделать очень легко.
1. Чтобы переименовать локальную ветку Git, мы можем использовать команду Git branch -m, чтобы изменить имя:
git branch -m feature1 feature2 2. Если вы просто ищете команду для переименования удаленной ветки Git, вот она: «
git push -u origin feature2:feature3 Проверьте, что у вас нет теги на ветке, прежде чем сделать это. Вы можете сделать это с git tag.
В моем случае мне потребовалась дополнительная команда,
чтобы заставить мою переименованную ветку перейти в . git branch --unset-upstream origin newname
(Для удобства ввода) я первый git checkout oldname.
Затем выполните следующее:
Этот дополнительный шаг может быть необходим только потому, что я (как правило) настраиваю удаленное отслеживание на своих филиалах через . Таким образом, когда я выписался, мне впоследствии нужен только тип, а неgit push-uorigin oldnameoldnamegit pushgit push origin oldname
Если я НЕ пользуюсь этой командой git branch --unset-upstreamраньше git push origin newbranch, git воссоздаетoldbranch и подталкивает newbranchк origin oldbranchпобеде над моими намерениями.
@ gman Точка занята. Мое решение использует git локально, чтобы переименовать ветку на GitHub, удаленно, после переименования его в локальной копии git репозитория GitHub. Поэтому, возможно, это можно считать специализированным решением, если вы хотите использовать командную строку, а не интерфейс веб-сайта GitHub, и у вас есть локальный клон, который вы также хотели бы обновить. Спасибо за то, что подчеркнули это различие и пояснили, что этот ответ предназначен для особого случая, а не для общего решения.
Шерил Хохман
Проблема в том, что github связывает функции с ветками. Попробуйте переименовать master в main, и ваши инструкции не будут выполнены.
мужчина
-1
Следующие команды переименовывают ветку локально, удаляют старую ветку в удаленном местоположении и выдвигают новую ветвь, настраивая локальную ветвь для отслеживания нового удаленного:
Хотя ваш фрагмент кода может решить проблему, вы должны описать, какова цель вашего кода (как он решает проблему). Кроме того, вы можете проверить stackoverflow.com/help/how-to-answer
Ахмад Ф
этот ответ охватывает git not github
gman
-1
Все просто . Чтобы переименовать ветку git локально и удаленно, используйте этот фрагмент (протестировано и работает как брелок):
Справочник по Git:
с опцией -m или -M будет переименован в. Если имеется соответствующий reflog, он переименовывается для соответствия, и создается запись reflog для запоминания переименования ветви. Если существует, -M должен быть использован для принудительного переименования.
Удалить шаг:
Ссылка на Git:
git push origin: экспериментальный. Найдите ссылку, соответствующую экспериментальной, в репозитории origin (например, refs /heads / экспериментальный) и удалите ее.
Обновление на этапе удаленного репо (восходящая ссылка для отслеживания):
Ссылка на Git: --set-upstream Для каждой ветки, которая актуальна или успешно отправлена, добавьте ссылку на
восходящий поток (отслеживание), используемую git-pull [1] без аргументов и другими командами. Для получения дополнительной информации см. Branch..merge в git-config [1].
После того, как вы нажмете на него обновления Github
Martin
Не работает Все, что он сделал, - это создал новую ветку на github. Он не переименовал ветку. pastebin.com/dDh06HEb
gman
-1
В ветке git запустите git branch -m old_name new_name Это изменит имя ветки в вашем локальном репозитории git push origin: old_name new_name Это приведет к удалению измененного имени и удалению старой ветви git push origin -u new_name Устанавливает отслеживание локальной ветви удаленная ветка. Это решает проблему
Ответы:
Как уже упоминалось, удалите старую версию на Github и повторно нажмите, хотя используемые команды немного более многословны, чем необходимо:
Просто. Немного рассредоточив команды, команда git push по сути:
Таким образом, выполнение push без указания local_branch означает, по сути, «ничего не брать из моего локального репозитория и сделать его удаленной веткой». Я всегда думал, что это совершенно глупо, но так оно и есть.
Редактировать: Начиная с Git 1.7, есть альтернативный синтаксис для удаления удаленной ветви:
Изменить: как упомянуто @ void.pointer в комментариях
Это можно превратить в простой псевдоним, который принимает в качестве аргументов удаленную исходную ветку и имя новой ветки
~/.gitconfig
:Использование:
Обратите внимание, что позиционные аргументы в командах оболочки были проблематичны в более старых (до 2.8?) Версиях git, поэтому псевдоним может варьироваться в зависимости от версии git. Смотрите это обсуждение для деталей.
источник
git push origin :old_branch new_branch
. Это удалит старую ветку и вытолкнет новую.git branch -m new_branch
(переименуйте old_branch в new_branch) 2.git commit -m 'msg'
, 3.git push
4. Ммм, old_branch появляется в Github, вопрос Google, и меня выводят на ваш ответ 5.git push origin :old_branch
(говорит, что он удален) 6.git push origin new_branch
... завершает, затем говорит* [new branch] new_branch -> old_branch
. Вернитесь к Github иold_branch
снова появитесь . Если я удаляю в веб-интерфейсе Github, у меня есть опция «Восстановить», поэтому кажется, что нажатие на new_branch просто восстанавливает.У меня работали следующие команды:
источник
Я нашел 3 команды, как вы можете изменить имя вашей ветки git, и эти команды - более быстрый способ сделать это
Если вам нужен шаг за шагом, вы можете прочитать эту замечательную статью
Как переименовать локальные и удаленные ветки Git
источник
git push --set-upstream
является наиболее важной частью, если вы случайно изменили имя ветки с помощью приложения github перед удалением удаленной ветки.Просто удалите старую ветку и создайте новую.
Пример (исключительно переименование удаленной ветви):
Вы также, вероятно, должны переименовать локальную ветку и изменить настройки для того, где нажать / тянуть.
источник
git push origin newname:refs/heads/newname
? master и newname могут не указывать на один и тот же коммит.Переименуйте ветки в git локальные и удаленные
1. Переименуйте свое местное отделение.
Если вы находитесь на ветке, которую хотите переименовать:
Если вы находитесь в другой ветке:
2. Удалите удаленную ветку со старым именем и нажмите локальную ветвь с новым именем.
3. Сбросьте восходящую ветку для локальной ветки с новым именем.
Переключитесь на ветку и затем:
Итак, вывод
источник
git branch -m new-name && git push origin :master new-name
. Это не удастся. Если этот ответ касается только git, а не github, тогда этот вопрос является дубликатом нескольких других вопросов и должен быть закрыт. Если это действительно о github, то ответ должен охватывать github. Этот ответ не дает.Вы можете сделать это без терминала, вам просто нужно создать ветку с новым именем и удалить старую после. Вы можете использовать этот пост, чтобы сделать это.
https://github.com/blog/1377-create-and-delete-branches
источник
Вот что сработало для меня:
1.) Сначала создайте новую ветку: git push github newname: refs /head / newname
2.) На сайте github зайдите в настройки и измените ветку Default на newname.
3.) Удалить старое имя git push github - удалить старое имя
источник
источник
Эта статья показывает, как это сделать очень легко.
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
Переименуйте голову и пульты как на локальном ПК, так и на источниках / удаленных серверах
Филиал теперь переименован (локальный и удаленный!)
Внимание
Если ваше текущее имя ветки содержит slashes (
/
), 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
победе над моими намерениями.источник
Следующие команды переименовывают ветку локально, удаляют старую ветку в удаленном местоположении и выдвигают новую ветвь, настраивая локальную ветвь для отслеживания нового удаленного:
источник
Все просто . Чтобы переименовать ветку git локально и удаленно, используйте этот фрагмент (протестировано и работает как брелок):
Объяснение:
Переименовать Шаг:
Удалить шаг:
Обновление на этапе удаленного репо (восходящая ссылка для отслеживания):
источник
3 простых шага
git push origin head
git branch -m old-branch-name новое-имя-ветви
git push origin head
источник
В ветке git запустите git branch -m old_name new_name Это изменит имя ветки в вашем локальном репозитории git push origin: old_name new_name Это приведет к удалению измененного имени и удалению старой ветви git push origin -u new_name Устанавливает отслеживание локальной ветви удаленная ветка. Это решает проблему
источник