我的机器上有一个存储库/opt/git/myrepo.git
然后我有两个工作目录:
/var/www/mysite.com /var/www/test.mysite.com
两者均来自/opt/git/myrepo.git
在test.mysite.com中,我创建了一个名为myfirstbranch的新分支,然后将其推送到repo:
git push origin myfirstbranch
然后如果我做git branch -a我看到了:
* master
myfirstbranch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/myfirstbranch
现在,如果我转到mysite.com并进行git fetch然后git branch -a,这就是我所看到的:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/myfirstbranch
所以没关系。但是如果我这样做的话:
git push origin :myfirstbranch
从mysite.com然后转到test.mysite.com并进行git fetch,然后git branch -a我仍然看到:
* master
myfirstbranch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/myfirstbranch
为什么它仍然认为遥控器/起源/ myfirstbranch仍然存在?当我在mysite.com中执行git branch -a时,它不显示遥控器/ origin / myfirstbranch
为什么会有差异?
答案 0 :(得分:3)
远程删除的分支不会在本地仓库中自动删除。你需要使用:
git remote prune origin
此外,git remote show origin
将显示一个很好的远程分支列表,如果需要,还需要“修剪”评论。