我重命名了一个本地分支,在远程删除了相同的分支,将新名称推送到远程并设置跟踪如下:
git checkout my_branch
git branch -m my_branch feature/my_branch # rename
git push origin :my_branch # delete on remote
git push --set-upstream origin feature/my_branch # push and set tracking
我已经为 20 多个分支(通过脚本)完成了此操作,并且没有错误。
贡献者git fetch --prune
已经更新了他们的本地分支(重命名并设置了新的跟踪分支)。
一天后(星期五),没有任何新的提交被推送,旧的origin/my_branch
重新出现在与origin/feature/my_branch
. 没有人可以通过使用旧的跟踪分支完成的新提交和推送。所以,我已经删除了origin/my_branch
.
今天(周末之后)origin/my_branch
再次出现在相同的旧提交(日期为星期四)origin/feature/my_branch
上。
我不明白 Git(垃圾收集器)如何以及为什么可以恢复已删除的分支,但可能原因在于Gitblit(它处理我的远程管理)方面?