Git列出不存在的遥控器

时间:2013-10-10 14:10:35

标签: git git-branch git-remote git-config

我最近在我的Git repo配置文件中对我的远程存储库进行了一些更改。我重命名了远程名称,将我的原点更改为另一个远程仓库并重命名我的旧源。

例如,我之前有过这个:

[remote "origin"]
   url =  blah blah

[remote "future"]
   url = blah blah

我进去改变它们看起来像这样:

# formerly the origin
[remote "old-origin"]

# formerly the future repo
[remote "origin']

但现在,当我输入git branch -a时,我看到旧的'未来'遥控器中列出了分支:

remotes/origin/HEAD
remotes/origin/branch1
remotes/origin/branch2
remotes/future/branch1
remotes/future/branch2
remotes/old-origin/master
remotes/old-origin/branch3

我运行了修剪以及获取等等,但该列表不会更新。我在配置文件中搜索了“future”,但没有任何结果。是否有任何命令可以运行以刷新此列表并停止查看该不存在的遥控器?

1 个答案:

答案 0 :(得分:8)

您曾经有一个名为future的遥控器,而您现在还没有。

因此,git remote whatever future无法提供帮助,因为没有名为future的远程用户。 (通常git remote update -pgit remote prune,如上面的评论,可以让你摆脱这些。)

最简单的选择似乎是手动删除它们:

git update-ref -d refs/remotes/future/branch1
git update-ref -d refs/remotes/future/branch2

(或rm -r .git/refs/remotes/future和/或编辑.git/packed-refs,具体取决于这些参考文件是否已打包。)

[顺便提一下,我也运行git config -e(或vi .git/config这是我通常真正做的事情:-))并确保没有其他遗留引用{ {1}}遥控。]