Мы с коллегой пытаемся разработать четкую и последовательную процедуру для переименования ветки git локально и удаленно.
Предполагая, что у нас есть ветка oldname
как локально, так и удаленно, и хотите переименовать его в newname
, и мы проверили локальную ветку oldname
, следуя { ссылка } (и другим аналогичным предложениям в inte rnet), эти шаги работают для моего коллеги:
git branch -m newname
git push --set-upstream origin newname
Принимая во внимание, что я должен выполнить промежуточный шаг явной отмены настройки восходящей информации (как предложено пользователем: 22992 в той же самой ссылке на переполнение стека, которую я предоставил выше):
git branch -m newname
git branch --unset-upstream
git push --set-upstream origin newname
Если мой коллега использует мою (немного более длинную) процедуру, то второй дополнительный шаг git branch --unset-upstream
приводит к ошибке:
Fatal: The current branch newname has no upstream branch.
Таким образом, мы не можем использовать ту же последовательную процедуру, и предполагаем, что нам просто нужно следите за этим в целом. Мне кажется, что поведение git branch -m
отличается в разных версиях git. Это верно? Почему есть разница в поведении?
Мой коллега использует git версию 2.18.0. windows .1. В то время как я использую 2.17.2 (Apple Git -113) на macOS 10.13.6.