Git 成功暂存文件但未能提交文件

Git successfully stages file but fails to commit the file

Git 通过 git add 成功暂存文件(它们显示在“要提交的更改”下),但是当我 运行 git commit -m "commit message" 和朋友时,命令无声地失败(echo $? 显示 1)并且我的文件仍然在那里列为“要提交的更改”...

其他类似的问题建议如下:

在调试我的问题时,我最终确实找到了指出 GIT_TRACE 环境变量的人。我运行:

export GIT_TRACE=1

完成此操作后,我重新运行 我失败的提交命令。现在我看到,在它死之前,它实际上是在尝试 运行 git diff 作为其提交过程的一部分。我在通过 SO 进行广泛搜索时看到,有时 git diff 可能会由于 运行 内存不足而在大文件上失败,但这似乎与我无关,因为我试图 git commit .尽管有问题的文件实际上是大文本文件(几 MB)。

解决方案最终是创建一个 .gitattributes 文件,其中包含如下条目(有点像 .gitignore 但末尾有 binary 关键字):

problem/file/path/or/pattern binary

这样 git 会将文件视为二进制文件而不是 运行 diff(因此不会 运行 内存不足,也不会提交失败)。这对我来说是一个可以接受的解决方案,因为我真的不需要更改跟踪或这个特定文件上的任何东西。