我使用GitHub网站从分支列表中删除了一个分支(下图中的红色垃圾桶图标)。
当我在本地计算机上获取最新的原始主机,然后执行git branch -r
时,仍然可以在远程看到删除的分支。但是当我运行git ls-remote --heads origin
时,分支及其头不在那儿。
GitHub到底在做什么?
答案 0 :(得分:3)
这些实际上是两个单独的问题,但是我将尝试回答两个问题。首先,当您在GitHub界面(或使用GitHub API)中删除分支时,它的作用等同于git branch -D
。但是,它不使用该特定命令来执行此操作;大多数托管服务提供商使用libgit2与存储库进行交互。
看到远程分支仍在您的计算机上的原因是,除非您使用git fetch
,否则--prune
命令不会删除远程跟踪分支。如果您使用git fetch --prune origin
,则删除的分支将被删除。
答案 1 :(得分:3)
git fetch
默认情况下不会删除远程跟踪引用。运行git fetch --prune
,然后再次运行git branch -r
。他们应该走了。
获取之前,请删除遥控器上不再存在的所有远程跟踪参考。