如何"正确"删除远程git分支,即为所有用户更新远程分支列表?

Ste*_*ose 34 git branch

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

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

git push origin :mybranch
Run Code Online (Sandbox Code Playgroud)

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

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

我们试过多个命令,pull,gc,prune,但没有什么是更新这个列表,而删除远程分支.

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

jam*_*san 46

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

  • `git remote prune origin`做了伎俩.干杯. (23认同)

小智 23

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

git fetch -p
Run Code Online (Sandbox Code Playgroud)