Ответ 1
Да,
функция move
существует, чтобы переименовать ветку локально
git branch --move <old_name> <new_name>
но чтобы нажать его, вы должны удалить старый и нажать новый
git checkout <new_name>
git push origin [--set-upstream] <new_name>
git push origin --delete <old_name>
--set-upstream
является обязательным, он настраивает новую локальную ветвь для отслеживания нажатой--set-upstream
Вы можете использовать следующие сокращения:
-
перемещать локально (--move):
git branch -m <old_name> <new_name>
-
нажмите новую ветку (--set-upstream, optional):
git push origin [-u] <new_name>
-
delete (--delete):
git push origin -d <old_name>
NB.
Благодаря комментариям torek:
Кстати, стоит упомянуть, что вы должны
- уведомлять других пользователей, которые делят вверх по течению, что вы будете делать это, и
- сделайте это в указанном порядке (установите новое имя, затем удалите старый).
Причина № 1 заключается в том, что эти пользователи должны будут настроить.
Причиной для № 2 является, в основном, просто эффективность: он избегает необходимости повторной копии объектов в восходящее репо, которое снижает фиксацию при удалении ветки (большинство голой репозиториев делают это, и большинство репозиториев, которые принимают нажатие, являются голой)