git branch -a产生不一致的结果?

时间:2012-11-26 01:43:40

标签: git

我的机器上有一个存储库/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

为什么会有差异?

1 个答案:

答案 0 :(得分:3)

远程删除的分支不会在本地仓库中自动删除。你需要使用:

git remote prune origin

此外,git remote show origin将显示一个很好的远程分支列表,如果需要,还需要“修剪”评论。