I finally had a situation where I needed to rename a branch in git. When I was the only one involved in a development effort (or even looking at it!), it didn’t really matter if I typo’d something. Exchange and Exchagne … I know what I meant. But working under a more formal development process, I started naming my branch after the issue ID. And managed to typo the first one. Sigh!
# Check out the incorrectly named branch
git checkout OSSA166
# Rename it with the correct name
git branch -m OSSA163
# See what you’ve got — the local one is right now, but the remote is still incorrectly named
git branch -a
* OSSA163
master
remotes/origin/HEAD -> origin/master
remotes/origin/OSSA166
remotes/origin/master
remotes/origin/uat
# Push a change to rename the remote one too
git push origin :OSSA166 OSSA163
Total 0 (delta 0), reused 0 (delta 0)
To ssh://git.example.com/path/to/my/repo.git
– [deleted] OSSA166
* [new branch] OSSA163 -> OSSA163
# And see what you’ve got again
git branch -a
* OSSA163
master
remotes/origin/HEAD -> origin/master
remotes/origin/OSSA163
remotes/origin/master
remotes/origin/uat