为什么我会看到已删除的远程分支?

Cra*_*lus 13 git version-control git-pull git-clone git-branch

我有一个远程存储库和2个克隆.
我在其中一个克隆中创建了一个分支,例如test.我做了一些工作和2次提交.我合并到master分支和push -u分支.
git pull在另一个克隆中做了一个.
我看到了两个mastertest.
在我做的第一个克隆项目中:
git origin :test删除test远程存储库上的分支.
test在远程回购中被删除.
我这样做git branch -D test,test分支也在本地删除.
如果我这样做,git branch -a我得到:

*master  
remotes/origin/master    
Run Code Online (Sandbox Code Playgroud)

现在在第二个存储库中我做了一个git pull.
在拉动局部test似乎被删除但git似乎"认为"远程test分支仍然存在.
如果我这样做,git branch -a我得到:

* master  
  remotes/origin/HEAD -> origin/master  
  remotes/origin/master  
  remotes/origin/test    
Run Code Online (Sandbox Code Playgroud)

为什么删除的test分支显示为远程分支?

Pet*_*ren 25

git fetch(以及因此git pull)的默认选项不会删除已删除的远程分支.我不确定这个默认背后的逻辑是什么.在任何情况下,要修剪已删除的远程分支,请使用

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

或跑

git remote prune [-n] <name>
Run Code Online (Sandbox Code Playgroud)

明确.使用该-n标志,它将报告将修剪哪些分支,但实际上不会修剪它们.有关更多信息,请参阅git-fetch(1)git-remote(1).


cre*_*ea1 8

尝试使用此命令git remote prune origin。删除的分支应该消失。这应该删除对远程分支的本地引用。