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

时间:2013-06-15 22:22:13

标签: git version-control git-branch git-clone git-pull

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

*master  
remotes/origin/master    

现在在第二个存储库中我执行了git pull 在提取时,似乎删除了本地test,但git似乎“认为”远程test分支仍然存在。
如果我git branch -a我得到:

* master  
  remotes/origin/HEAD -> origin/master  
  remotes/origin/master  
  remotes/origin/test    

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

2 个答案:

答案 0 :(得分:21)

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

获取
git fetch -p

或运行

git remote prune [-n] <name>

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

答案 1 :(得分:5)

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