【问题标题】:Can't add file to git for no apparent reason无缘无故无法将文件添加到 git
【发布时间】:2020-02-11 01:01:15
【问题描述】:

我在 assets/fonts/myFont.otf 下有这个文件

我无法将其签入我的存储库。但据我所知,它并没有被忽视。

git checkout assets/fonts/myFont.otf
error: pathspec 'assets/fonts/myFont.otf' did not match any file(s) known to git.

但是添加它没有效果。

git add assets/fonts/myFont.otf

我无法让git status 以任何方式显示文件。

到目前为止我已经尝试过:

  • git add -f
  • git update-index --no-assume-unchanged
  • git config --global core.excludesfile
  • 检查项目中的所有 .gitignore 文件
  • 将文件结尾从.otf更改为.ttf -> 有效
  • 将 /assets/fonts/* 移动到 . -> 有效
  • git check-ignore assets/fonts/* -> 空输出

我不知道为什么*.otf 文件在我的assets/fonts/ 文件夹中被忽略。我可以尝试找出其他任何事情吗?任何想法可能导致这种情况?操作系统是macos 13.14.6

【问题讨论】:

  • 您能否提供minimal reproducible example 来重现此问题? git status 说什么?
  • repo 相当大。我浏览了所有 .gitignore 文件,但找不到会导致这种情况的规则。 git check-ignore 不应该找到那些文件吗?请参阅编辑,git status 不会列出这些文件,除非我更改它们的结尾或移动它们
  • git status --ignored --untracked-files 呢?
  • 文件夹显示应该被忽略的文件:assets/fonts/.DS_StoremyFont.otf 没有出现
  • MacOS 文件系统默认是大小写折叠的。可能 committed 文件拼写不同,例如 assets/fonts/MYFONT.OTFassets/FONTS/myFont.otf

标签: git gitignore git-add


【解决方案1】:

所以在toreks提示的帮助下找到了解决方案。

显然 MacOS 文件系统默认情况下是大小写折叠的。

所以在删除文件夹assets/fonts 后,我在git status 中看到,该文件以不同的大小写签入了git:

deleted:     assets/fonts/MyFont.otf

因此,在我将删除添加到暂存区域后,一切正常并按预期进行了注册。我仍然会说 git 应该以不同的方式处理这个问题。

【讨论】:

    【解决方案2】:

    我曾经遇到过同样的问题。 最好的解决方案是复制文件夹,然后您可以克隆项目,将新文件复制到克隆的文件夹中。

    强制 (-f) 通常应该添加甚至被忽略的一个。

    如果我记得很清楚,另一个解决方案是删除 .git 文件夹。

    (无法添加评论...抱歉)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-21
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      • 2020-04-16
      相关资源
      最近更新 更多