git警告无法解除git对象的链接。我该如何解决?

12
当我执行 git commit 命令时,我看到以下信息。
>$ git commit -a
warning: unable to unlink .git/objects/63/tmp_obj_kK6IC9: Invalid argument
warning: unable to unlink .git/objects/2c/tmp_obj_SFNGla: Invalid argument

我仍然能够执行 git commit。不过,我想知道如何摆脱这些警告。


尝试使用--verbose标志运行相同的命令,以便我们可以获得更多的调试输出。 - ThorSummoner
除了显示我即将提交的文件的代码差异之外,没有额外的调试输出。 - Kim Stacks
2
你是否有任何可能会在使用中的程序,例如图形界面,正在占用这些文件?(根据此文章建议:https://dev59.com/Vmw05IYBdhLWcg3wgyDI) - ThorSummoner
请说明您的git目录所在的文件系统类型(例如 df -T .git)。 - Helmut Grohne
这些文件保存在Cruzer Fit驱动器上的NTFS文件系统中。我正在使用Mac OS X操作系统。我的Mac OS X可以使用NTFS文件系统是因为我安装了Paragon软件。这是原因吗? - Kim Stacks
4个回答

23

每当尝试运行“git repack”或“git gc”时,我在OS X上遇到类似的问题。 我在查阅了这个页面后终于解决了它:http://hints.macworld.com/article.php?story=20010610132749532

解决方法是打开终端,进入您的git库,cd进入.git文件夹,然后键入chflags -R nouchg *。 如果那是问题所在,那么之后,您的git命令将像往常一样工作。


5

仅删除./git/gc.log文件。


2

我在Windows 10上遇到了相同的问题。根据这里的提示,我怀疑公司登录脚本与映射到网络驱动器的家庭驱动器结合使用。注销并重新登录对我有帮助。


1
这应该是一条注释,而不是一个答案。 - Stuart
3
为什么?这是针对上述问题的解决方案,可能有助于其他用户。此外,作为新用户,我只能评论自己的问题和答案。 - Tim Bq

1

确保没有任何程序在运行,尝试检出一个新的分支,如果无法检出,请尝试使用git checkout -f master命令,然后该警告将不会再次出现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接