如何“正确”删除远程git分支,a.k.a。更新所有用户的远程分支列表?

时间:2011-03-03 15:47:33

标签: git branch

我正在尝试删除一个远程git分支,但是这个过程并没有像我期望的那样“完全”删除分支。

比如说我正在删除一个名为mybranch的分支。为此,我运行以下命令,

git push origin :mybranch

这会按预期删除分支,如果我git branch -a,它将不再在本地或远程列表中显示。

我遇到的问题是,如果我去另一个人的机器在分支存在时执行了git pull,并且他们执行git branch -a,它仍然在他们的列表中作为远程分支。< / p>

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

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

2 个答案:

答案 0 :(得分:46)

在他们更新他们的遥控器之前,他们的git将不知道存储库中发生了什么。完成更新后(git fetchgit remote update),git remote show origin将正确显示他们对上游不再存在的分支有本地跟踪分支。此时,git remote prune可用于删除过时的本地分支。

答案 1 :(得分:23)

删除遥控器上不再存在的任何远程跟踪分支。

git fetch -p