我有一个远程存储库和2个克隆
我在其中一个克隆中创建了一个分支,例如test
。我做了一些工作和2次提交。我合并到master
分支和push -u
分支
我在另一个克隆中做git pull
我看到master
和test
在我做的第一个克隆项目中:
git origin :test
删除远程存储库上的test
分支
远程存储库中删除了test
我做git branch -D test
,test
分支也会在本地删除
如果我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
分支显示为远程分支?
答案 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
。删除的分支应该消失。这应该删除对远程分支的本地引用。