我想使用 Hyper-V Windows 虚拟机进行开发。为了备份所有数据,我将主机操作系统的共享目录“安装”(映射)到虚拟机中。我可以很好地编辑这个共享目录中的文件。
但是,git 无法正常工作。每当我尝试提交某些内容时,它都会告诉我:
fatal: cannot update the ref 'HEAD': unable to append to '.git/logs/HEAD': Invalid argument
有什么问题吗?这是已知的不兼容性吗?
git status
似乎工作得很好。
最佳答案
我不能说这是否是一个已知不兼容性,但是:
fatal: cannot update the ref 'HEAD': unable to append to '.git/logs/HEAD': Invalid argument
强烈建议您使用的特定文件系统设置根本不支持开放附加:
*fd = open(path, O_APPEND | O_WRONLY | O_CREAT, 0666);
或者:
*logfd = open(logfile, O_APPEND | O_WRONLY, 0666);
来自 C 代码。无论使用这两者中的哪一个(使用哪一个取决于文件 .git/logs/HEAD
是否已存在)open
系统调用都会返回 EINVAL
。
由于所有允许任何类型文件写入的文件系统都支持 O_WRONLY
和 O_CREAT
,所以问题就出在此处使用文件系统的 O_APPEND
标志实现。
关于Windows 共享网络文件夹上的 git commit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64599363/