我试图提交新的更改到我的仓库,但是遇到了以下错误:
error: unable to create temporary file: Invalid argument
error: unable to create temporary file: Invalid argument
error: Error building trees
当其他人遇到类似问题时,错误会指向导致问题的特定文件/对象,但在这里没有其他信息可用。
(尝试通过终端和cmd,适用于Windows 10)
我试图提交新的更改到我的仓库,但是遇到了以下错误:
error: unable to create temporary file: Invalid argument
error: unable to create temporary file: Invalid argument
error: Error building trees
当其他人遇到类似问题时,错误会指向导致问题的特定文件/对象,但在这里没有其他信息可用。
(尝试通过终端和cmd,适用于Windows 10)
.git
内 objects
文件夹中的一个文件损坏(The tag present in the reparse point buffer is invalid)。可以通过检查文件夹外观(对我来说,它是唯一带有蓝色 OneDrive 同步箭头而不是绿色勾的文件夹,且不能打开)来确定问题所在。另一种方法是将有问题的分支克隆到新文件夹中,进行微小更改(我创建了一个写有“test”的test.txt
文件),推送到 git,然后返回到有问题的项目文件夹并尝试从 git 拉取新变更。此操作失败并指向了损坏的对象。chkdsk c: /r /f
,当计算机重新启动时开始运行。请注意,这可能需要几个小时才能完成。Git 真的应该在这里打印路径,是的。错误似乎来自 object-file.c:write_loose_object(),在正常情况下会在 .git/objects
中创建一个临时文件。
EINVAL
的错误情况不应该发生,因为对象路径本身必须是有效的(否则它是怎么出现的?)并且生成的临时文件名只使用完全“安全”的字符。所以错误消息中缺少的filename.buf
不应该首先出现。在您的情况下,错误确实出现了,而缺少的%s
用于filename.buf
意味着我们无法看到您的操作系统反对的路径。