【问题标题】:How to fix "warning: ignoring ref with broken name" in git?如何在 git 中修复“警告:忽略名称损坏的 ref”?
【发布时间】:2016-05-01 15:39:11
【问题描述】:

我正在开发 OSX。在特定的仓库中,每当我在输入 git 命令后选择自动完成时:

$ git diff [clicks tab...]

我现在看到大量警告:

warning: ignoring ref with broken name refs/Icon
warning: ignoring ref with broken name refs/heads/Icon
warning: ignoring ref with broken name refs/remotes/Icon
warning: ignoring ref with broken name refs/remotes/origin/Icon
warning: ignoring ref with broken name refs/tags/Icon

真的很烦,也就是看不到想看的文件名了。

如何删除或隐藏这些警告?

我的gitignore 文件中有Icon? 的条目。本地目录中有一个Icon? 文件。

对于所有即将点击“重复”的触发快乐的人:我已经搜索了其他答案,我 found this 但我不确定它与我的情况有何关系。可能根本原因是相同的,但对如何解决此问题进行解释将使我和其他人受益。

【问题讨论】:

  • 我想知道这是否是 OSX 不区分大小写文件系统的结果。你有 Icon/icon 之间的冲突吗?你可以试试git update-ref -d <ref> 核对其中一个
  • 您没有同样的问题(这很有趣),但链接问题中的解决方案是相同的:在备份您的存储库后小心删除有问题的文件。

标签: git


【解决方案1】:

Icon\r 文件是在您change a folder's icon 时由 Mac OS 创建的。

如何删除或隐藏这些警告?

您需要自己删除有问题的文件。

我有一个 Icon 条目?在我的 gitignore 文件中。

这没什么区别。 .gitignore 在工作目录上工作;这些文件位于 Git 存储其元数据的存储库文件夹中。 .gitignore 不适用于那里。 Git 将它们误认为是分支名称。

要解决此问题,您可以删除您为文件夹提供的自定义图标。但如果没有,您将需要从.git 文件夹下删除文件。您可以在 Finder 中(打开“显示隐藏文件”后)或从命令行执行此操作:

rm .git/refs/Icon?

请务必在尝试此操作之前备份您的存储库,因为更改 .git 文件夹中的内容可能会损坏您的存储库。

【讨论】:

  • 我运行了一个脚本,它基本上将一个文件放在每个目录中,并在其中列出一个目录。我在根目录下执行了此操作,并且必须运行它来修复它,它与上述命令基本上做同样的事情,但如果你像我一样自动化你的灾难,速度会更快。 find .git/ -iname "my-directory-list.txt" -delete
猜你喜欢
  • 2018-01-30
  • 2021-03-29
  • 1970-01-01
  • 2013-09-11
  • 2015-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多