我想使用Hyper-V Windows虚拟机进行开发。为了备份我的所有数据,我已经将主机OS的共享目录“挂载”(映射)到虚拟机中。我可以在此共享目录中编辑文件。
但是,git无法正常工作。每当我尝试提交某些内容时,它就会告诉我:
致命:无法更新引用'HEAD':无法追加到'.git / logs / HEAD':无效参数
出什么问题了?这是已知的不兼容性吗?
git status
似乎工作正常。
答案 0 :(得分:2)
我不能说这是否是已知不兼容,但这是
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
标志。
答案 1 :(得分:0)
如果有人遇到此问题,我已经找到了解决方法。我已将该目录设置为VM中的本地目录,并授予了主机网络访问权限。这样,主机可以通过另一种方式访问它,并且我可以在不完全备份VM的情况下备份目录。