Gitでローカル・リモート一緒にブランチ名を変更したい
Git 2.11.1で確認。
シチュエーション
hage
ってブランチ作って、
$ git checkout -b hage
諸々修正して、
$ git commit -a $ git push -u origin hage
commit・pushした後に、
「あれ、ブランチ名間違えた。hoge
だった」
ということで、ローカルとリモート併せて名前変えたい。
失敗例
upstreamブランチをリモートから削除して
$ git push --delete origin hage
ローカルブランチの名前を変えて
$ git checkout hage $ git branch -m hoge
そのまま再push!
$ git push -u origin hoge ... * [new branch] hoge -> hage ~~~~
あれー?
$ git push --delete origin hage $ git branch -vv ... hoge ff0da9d [origin/hage: gone] .... ...
リモートのブランチが消えても、一度設定されたupstreamの向き先は残ってるっぽい。
解決
upstreamブランチを削除してローカルブランチ名変えた後、明示的にupstream設定を削除する必要があるようです。
$ git branch --unset-upstream
その後、再push
$ git push -u origin hoge ... * [new branch] hoge -> hoge ~~~~
めでたしめでたし。