在远端已经删除ylwang_dev_786等三四个分支,本地git branch -a 时 依然显示存在。
执行
git remote show origin
会展示被删除的那些分支
当你在Git远程仓库(如GitLab)上删除一个分支后,这个变更不会自动同步到每个开发者的本地仓库。本地仓库保留了远程分支的引用作为缓存,即使这些分支在远程仓库中已经被删除。这就是为什么你在执行git branch -a
时仍然可以看到origin/ver_791
。
git remote show origin
命令显示的信息也是基于最后一次与远程仓库通信时的状态。所以,如果远程分支已经被删除,但你的本地仓库没有更新其远程跟踪的分支信息,那么它将标记为stale(陈旧的)。
为了解决这个问题,并让你的本地仓库反映远程仓库的当前状态,你需要修剪(prune)掉本地不存在于远程仓库的分支引用。你可以通过以下命令来实现:
git fetch --prune
或者是:
git remote prune origin
这两个命令都会删除那些已经从远程仓库中删除但仍然存在于本地的远程跟踪分支。
使用git fetch --prune
将同时获取最新的远程仓库数据并删除任何过时的远程跟踪分支。而git remote prune origin
只专注于删除过时的分支,不会获取新的远程仓库数据。
在执行上述命令后,再次运行git branch -a
时,你就不应该再看到origin/ver_791
分支了。