在 2012年7月2日星期一UTC+8下午3时19分47秒,hoping duan写道:
如题,为什么我分别在远程库和本地库使用tg delete 删除一个特性分支。但是我本地使用tg remote --populate origin之后删除的特性分支又出现了。
本地用 tg delete 删除特性分支后,用下面命令删除远程版本库中特性分支:
$ git push origin :t/feature-branch
$ git push origin :top-bases/t/feature-branch
如果你是在本地和服务器端都执行了 tg delete -f t/feature-branch, 本地工作区中
仍然存在 t/feature-branch 的远程分支,即存在 refs/remotes/origin/t/feature-branch
和 refs/remotes/origin/top-bases/t/feature-branch 。当执行 tg remote --populate origin
时,会调用 git fetch ,而非 git fetch --prune,该命令不会清除过时的远程分支,
导致 tg delete 删除的特性分支重现。
可以考虑扩展 tg delete 命令当提供 -r origin 参数时删除远程分支。且 tg remote --populate origin
时执行 git fetch --prune 命令,不过发现 git fetch --prune 实现有问题。