使用命令git branch -a
我看到几个remotes/origin/branchname
用于已从服务器删除的远程分支。为什么会发生这种情况以及如何更新列表?谢谢。
答案 0 :(得分:6)
这是git设计的。
对于您使用的每个远程存储库的每个分支,git在remotes/<remote name>/
下创建一个本地副本。这些被称为“远程跟踪分支”。
如果从远程存储库中删除原始分支,git将不会自动删除您的本地远程跟踪分支。毕竟,你可能仍然需要它:也许你建立了一个本地分支,或者你打算,或者你仍然需要它作为参考......
所以为了安全起见,git会保留分支机构。要摆脱它,你可以:
git branch -rd <remote name>/<branch name>
或 git remote prune origin
(或使用git fetch --prune
)删除远程不再存在的所有远程跟踪分支 git branch -rd
的优势在于它也可以离线工作,而第二个选项需要访问遥控器。
答案 1 :(得分:1)
git fetch
通常只更新已更改的远程分支。如果添加--prune
,它还将删除上游不再存在的所有远程分支。
答案 2 :(得分:0)
您可以使用git origin prune
删除过时的远程分支。您可以看到它们,因为您在本地分支中跟踪它们