为什么git remote的旧名称在.git/refs/remotes中?

为什么git remote的旧名称在.git/refs/remotes中?,git,git-remote,Git,Git Remote,我最近将我的“主要”远程git存储库从code.google移动到github。然后,我将旧的originrepo重命名为code-google,并将以前创建的远程github重命名为origin。到目前为止还不错 但是 .git/refs/remotes中仍有引用: code-google github origin 我试过这个,但似乎不起作用: $ git remote prune github --dry-run fatal: 'github' does not appear to

我最近将我的“主要”远程git存储库从
code.google
移动到
github
。然后,我将旧的
origin
repo重命名为
code-google
,并将以前创建的远程
github
重命名为
origin
。到目前为止还不错

但是

.git/refs/remotes
中仍有引用:

code-google  github  origin
我试过这个,但似乎不起作用:

$ git remote prune github --dry-run
fatal: 'github' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
为什么github在重命名后仍然存在?为什么我不能处理它?我如何清理我的回购协议?

(现已删除)提到重命名遥控器是不够的:

如果您想真正完整,还应删除您的“
来源”
”参考:


更安全的方法是克隆新的远程repo(现在在GitHub上),并添加另一个远程设备。

如果您使用了
git remote-rename-code-google-origin
,那么一开始就不会让它们挂在那里,因为git会将引用移动到新名称下。此外,仅仅删除“.git/refs/remotes/”并不能保证它们全部消失。Git还具有打包的引用,这些引用不会作为单独的文件存储在文件系统中。我只是想让你下次再了解一下。好吧,
git remote rename x y
正是我使用的。如果你这么做了,那么git可能会留下空文件夹,但引用应该都被迁移了。如果不是这样,我会将其报告到git列表,因为我怀疑这可能是一个bug。顺便说一句,
git ls remote.
显示了什么?只显示线程手动编辑的
.git/config
的新来源(@github.com)的分支。最好的方法是避免这种情况,并使用
git-remote-rename
deleted@MaxCoplan8年后,这并不奇怪,但这个答案的核心思想仍然是正确的。
rm -R .git/refs/remotes/origin