我正在尝试删除一个远程git分支,但是这个过程并没有像我期望的那样“完全”删除分支。
比如说我正在删除一个名为mybranch
的分支。为此,我运行以下命令,
git push origin :mybranch
这会按预期删除分支,如果我git branch -a
,它将不再在本地或远程列表中显示。
我遇到的问题是,如果我去另一个人的机器在分支存在时执行了git pull
,并且他们执行git branch -a
,它仍然在他们的列表中作为远程分支。< / p>
我们尝试了多个命令,pull
,gc
,prune
,但没有更新此列表并删除远程分支。
是否有一个命令要同步(我只能假设是)远程分支列表的本地缓存,并删除任何不再存在的远程分支?
答案 0 :(得分:46)
在他们更新他们的遥控器之前,他们的git将不知道存储库中发生了什么。完成更新后(git fetch
或git remote update
),git remote show origin
将正确显示他们对上游不再存在的分支有本地跟踪分支。此时,git remote prune
可用于删除过时的本地分支。
答案 1 :(得分:23)
删除遥控器上不再存在的任何远程跟踪分支。
git fetch -p