Git的远程分支重命名

一般情况下,不需要重命名远程分支,但是最近在项目中,我想将一个已经是既成事实的开发分支重命名为对应的dev分支,所以有这个需求。

其实改名是一种偷懒的做法。它本来应该把要改名的分支合并到原来的dev分支,但是试了一下发现冲突太多了,几百个,我就泄气了,干脆改名了。(这次我也给了自己一个警告。应该尽快将功能分支合并到开发中。如果走得太远,很容易出现这种情况。)

重命名远程分支实际上是先删除远程分支,本地分支重命名后再向上推。下面列出操作:(假设当前在本地分支?论旧,应该改名为新)

再看git branch -avv,你会发现新分支对应的上游分支还是origin/old,只是多了一个gone标识,所以我们将新分支设置为上游分支,同时推送。

好了,现在我们已经完成了重命名步骤。我们现在的新分支对应的是origin/new,只是名字变了,所有提交历史还是和旧的一样。