git - 无法添加到存储库

标签 git github gitlab

这里是我使用 git add 时的错误。

 $ git add .
    error: short read while indexing .editorconfig
    error: .editorconfig: failed to insert into database
    error: unable to index file '.editorconfig'
    fatal: adding files failed

我该如何解决?

最佳答案

这 ( error: short read while indexing <em>name</em> ) 发生在 Git 找到给定名称的文件,从操作系统获取关于该文件的信息,并将该文件添加到索引也就是临时区域。混帐:

  • 使用文件名打开文件;
  • 读取文件内容;和
  • 发现虽然系统说文件正好是 N1 字节长,但 Git 只能读取 N0 个字节,其中 N0 <N1

在 Git-for-Windows 上使用 WSL 时,有一个新功能,您可以允许系统存储两个文件,这两个文件仅在某些名称的大小写 上不同,例如,readme.txt README.TXT .通常 Windows 只允许 一个 这样的名称,并且一旦名称存在,就可以使用任何变体——包括 ReAdMe.TxTreaDME.tXT或其他任何东西——给你一个文件。 Git-for-Windows 过多地使用了这个假设,而 WSL 现在已经打破了这一假设。

目前的解决方案是:

  • 不要这样做,和/或
  • 不要使用 Windows。1

最终,Git-for-Windows 人员将构建一个 Git-for-Windows 版本来处理该问题。


1macOS 的人可能会在这里 mock Windows 的人,但 macOS 也有类似的问题。在某些方面,macOS 问题可能更糟(NFC 与 NFD 名称),但在其他方面 Windows 问题更糟(无法创建名为 aux.caux.h 的文件)。 Git 确实需要一个合适的通用机制,但在某些方面这是一个无法解决的问题。

关于git - 无法添加到存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67799062/

相关文章:

git - 在 .gitignore 中 merge 冲突

go - 如何将 Go dep 与 GitLab 子组一起使用

gitlab - 如何从 GitLab CI 创建 Jira 任务?

linux - 如何正确设置Gitlab gitlab-ci变量

github新手: clone doesn't seem to have gotten me the right files

wordpress - 是否有与 Microsoft Azure 上的 PHP/WordPress 一起使用的配置转换的等效项?

xcode - 如何在 Xcode 源代码管理中使用 GPG 签名?

git - merge 提交有什么问题?

Linux - Git Credentials - 如何删除用户名/密码组合的实例?

git - git中的附加子模块