为什么我仍然可以签出我在远程GitLab上删除的分支
我在GitLab上有一个项目,我从master创建了一个名为为什么我仍然可以签出我在远程GitLab上删除的分支,git,version-control,gitlab,Git,Version Control,Gitlab,我在GitLab上有一个项目,我从master创建了一个名为处理点的分支,不是从命令行而是通过web界面 然后,我删除了分支处理点,也从web界面删除了分支。因此,从web界面上一切正常,但在本地计算机上,我仍然可以签出已删除的分支。这怎么可能 以下是我要求结账时得到的建议: ag@ag-Precision-7520:~/catkin_ws/3D_EM$ git checkout HEAD origin/master
处理点
的分支,不是从命令行而是通过web界面
然后,我删除了分支处理点
,也从web界面删除了分支。因此,从web界面上一切正常,但在本地计算机上,我仍然可以签出已删除的分支。这怎么可能
以下是我要求结账时得到的建议:
ag@ag-Precision-7520:~/catkin_ws/3D_EM$ git checkout
HEAD origin/master origin/Processing-points-multi-thread
master origin/origin/parallelization parallelization
ORIG_HEAD origin/parallelization pcl_filters
origin/HEAD origin/pcl_filters Processing-points-multi-thread
您可以使用以下方法清除对远程分支的过时引用:
git remote prune origin
您可以通过以下方面解决此问题:
使用git branch-r
检查跟踪分支原点/处理点是否存在。如果存在,可以使用以下命令更新:
git fetch -p
git checkout master #if the HEAD is on local Processing-points branch
git branch -D Processing-points
如果跟踪分支原始/处理点
不存在,这将导致在远程删除分支之前,处理点
分支已在本地签出。即使您删除了远程处理点
分支,本地分支处理点
也始终存在。您可以使用git branch-D处理点
删除本地处理点
我使用git branch-r
并在列表中看到了原点/处理点。我只需要做git fetch-p
就可以得到这样的响应:x[deleted](none)->源/处理点多线程
,一切看起来都很好。
谢谢你的帮助 似乎你没有删除本地分支,或者你从未删除跟踪分支,git checkout
创建了一个新的本地副本。相关:事实上,@Jubobs,你链接到的答案以一种比我要写的更好的方式解释了情况:-)。@MatthieuMoy来自你,这个评论让我非常高兴:)我使用git branch-r并查看了源/处理点,然后我只需添加一个git fetch-p就可以得到这样的响应:是的,您可以执行git fetch-p
从远程repo中删除分支处理点
。但是本地处理点分支仍然存在。如果还要删除本地处理点
分支,请继续执行git branch-D处理点
以删除本地处理点
分支。