2011-03-03 59 views
34

我想删除一个远程git分支,但是这个过程并不像我所期望的那样“完全”删除分支。如何删除远程git分支“正常”,又名a.a.更新所有用户的远程分支列表?

比方说,我正在删除一个名为mybranch的分支。要做到这一点,我运行下面的命令,

git push origin :mybranch 

这消除了如预期的分支,如果我做git branch -a不再在名单上出现本地或远程。

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

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

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

回答

46

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

+23

'git remote prune origin'做到了这一点。干杯。 – 2011-03-03 16:25:16

23

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

git fetch -p 
+0

你救了我的一天! – 2012-10-17 12:03:43

+0

这救了我的屁股:) – 2016-01-28 19:10:19