如何“正确”删除远程 Git 分支,即更新所有用户的远程分支列表?

34

我想要删除一个远程git分支,但是这个过程并没有像我期望的那样完全删除了这个分支。

举个例子,假设我要删除一个名为mybranch的分支。为此,我运行以下命令:

git push origin :mybranch

这如预期一样删除了分支,如果我执行 git branch -a,那么它在本地或远程列表中都不再显示。

我的问题是,如果我去另一个人的机器上,在该分支存在时他们执行了 git pull,并且他们执行 git branch -a,仍然会在列表中作为远程分支出现。

我们尝试了多个命令,包括 pullgcprune,但没有更新此列表并删除远程分支。

是否有命令可以同步(我只能假设是)远程分支列表的本地缓存,并删除不再存在的任何远程分支?

2个回答

46

在他们更新遥控器之前,他们的 git 将不知道存储库中发生了什么。一旦他们进行更新(通过 git fetchgit remote update),git remote show origin 将正确显示他们具有已不存在于上游的分支的本地跟踪分支。此时,可以使用 git remote prune 删除过期的本地分支。


23

删除任何在远程不存在的远程跟踪分支。

git fetch -p

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接