Как уже упоминалось, удалите старую версию на Github и повторите ее, хотя используемые команды немного более многословны, чем необходимо:
git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local
Простая.Немного рассредоточив команды, команда 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 в комментариях
Обратите внимание, что вы можете объединить 2 операции нажатия:
git push origin :old_branch new_branch
Это удалит старую ветку и вытолкнет новую.
Это можно превратить в простой псевдоним, который принимает удаленный, оригинальныйветвь и имя новой ветки в качестве аргументов, в ~/.gitconfig
:
[alias]
branchm = "!git branch -m $2 $3 && git push $1 :$2 $3 -u #"
Использование:
git branchm origin old_branch new_branch
Обратите внимание, что позиционные аргументы в командах оболочки были проблемными в более старых (до 2.8?) версияхgit, поэтому псевдоним может варьироваться в зависимости от версии git.См. это обсуждение для деталей.