删除 Git 中损坏的名称(保管箱冲突的副本)
removing broken names in Git (dropbox conflicted copy)
我将我的回购保存在保管箱中,有一天(见下面的日期)它变得疯狂了。现在我每次尝试自动完成分支名称时都会收到这些警告
warning: ignoring ref with broken name refs/heads/develop (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/heads/master (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/origin/develop (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/origin/master (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/production/master (MacBook Pro's conflicted copy 2015-02-28)
如何修复这些警告?
注意:对于所有喜欢重复触发的人 - 这不是骗局!我只想删除上面的引用以停止收到警告。 git 存储库完好无损
当 Dropbox 发现有冲突的文件时,它会将这些文件重命名为 filename (conflicted copy)
(如您所知)。所以你只需要再次重命名这些文件:
这可能是一个相当微妙的练习,因为您会在 git 目录中弄得一团糟;最好先复制整个存储库。现在进入这个目录
cd <repo>/.git/refs/heads
在哪里可以找到那些重命名错误的文件。您必须检查要保留哪一个(正常或冲突的副本),并删除不需要的副本,并根据需要重命名冲突的副本。您必须在其他目录中执行相同的操作:
<repo>/.git/refs/remotes
编辑:您将找到的每个文件都只包含它们指向的提交的哈希值。所以如果你想检查保留哪一个;检查哪些提交确实存在,以及您希望这些引用指向何处。
我通过 运行
修剪了不再在我的遥控器上的分支
git remote prune origin
这解决了我的问题。
我可能在更新我的 git 版本(ubuntu 15.04 到 15.10)后收到此警告,并且只需要删除 .git/refs/remotes 中的目录用于旧的悬挂遥控器我实际上不再已配置。
我将我的回购保存在保管箱中,有一天(见下面的日期)它变得疯狂了。现在我每次尝试自动完成分支名称时都会收到这些警告
warning: ignoring ref with broken name refs/heads/develop (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/heads/master (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/origin/develop (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/origin/master (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/production/master (MacBook Pro's conflicted copy 2015-02-28)
如何修复这些警告?
注意:对于所有喜欢重复触发的人 - 这不是骗局!我只想删除上面的引用以停止收到警告。 git 存储库完好无损
当 Dropbox 发现有冲突的文件时,它会将这些文件重命名为 filename (conflicted copy)
(如您所知)。所以你只需要再次重命名这些文件:
这可能是一个相当微妙的练习,因为您会在 git 目录中弄得一团糟;最好先复制整个存储库。现在进入这个目录
cd <repo>/.git/refs/heads
在哪里可以找到那些重命名错误的文件。您必须检查要保留哪一个(正常或冲突的副本),并删除不需要的副本,并根据需要重命名冲突的副本。您必须在其他目录中执行相同的操作:
<repo>/.git/refs/remotes
编辑:您将找到的每个文件都只包含它们指向的提交的哈希值。所以如果你想检查保留哪一个;检查哪些提交确实存在,以及您希望这些引用指向何处。
我通过 运行
修剪了不再在我的遥控器上的分支git remote prune origin
这解决了我的问题。
我可能在更新我的 git 版本(ubuntu 15.04 到 15.10)后收到此警告,并且只需要删除 .git/refs/remotes 中的目录用于旧的悬挂遥控器我实际上不再已配置。