TL; DR
«Переименование» удаленной ветви на самом деле представляет собой двухэтапный процесс (не обязательно заказывается):
- удаление старой удаленной ветви (
git push [space]:<old_name>
, как объяснено ksrb );
- нажмите на новую удаленную ветку (разница между командами ответов на пару ниже).
Удаление
Я использую TortoiseGit , и когда я впервые попытался удалить ветку через командную строку, я получил это:
$ git push origin :in
Пожалуйста, убедитесь, что у вас есть правильные права доступа, и хранилище существует.
Вероятно, это связано с тем, что pageant не имеет загруженного закрытого ключа (который TortoiseGit автоматически загружается в pageant ). Более того, я заметил, что в командах TortoiseGit нет ссылки origin
(например, git.exe push --progress "my_project" interesting_local:interesting
).
Я также использую Bitbucket и, как и другие подобные онлайн-менеджеры Git (GitHub, GitLab), я смог удалить удаленную ветку напрямую через их интерфейс (страница ветвей):

Однако в TortoiseGit вы также можете удалять удаленные ветви с помощью Просмотр ссылок :

Если щелкнуть правой кнопкой мыши по удаленной ветви (список удаленных), появится опция Удалить удаленную ветку :

Нажатие
После удаления старой удаленной ветви я вставил прямо в новую удаленную ветку с помощью TortoiseGit , просто введя новое имя в поле Remote: поля Push окно и эта ветка была автоматически создана и видна в Bitbucket .
Однако, если вы все еще предпочитаете делать это вручную, то, что еще не было упомянуто в этой теме: -u
= --set-upstream
.
С git push
документы , -u
это просто псевдоним --set-upstream
, поэтому команды в ответах Сильвен (-set-upstream new-branch
) и Shashank (-u origin new_branch
) эквивалентны, так как удаленный ref по умолчанию равен origin
, если ранее не было задано никакого другого ref:
git push origin -u new_branch
= git push -u new_branch
из описания документов :
Если конфигурация отсутствует, по умолчанию используется origin
.
В конце концов, я не вводил вручную и не использовал ни одну из команд, предложенных другими ответами здесь, так что, возможно, это может быть полезно для других в аналогичной ситуации.