Windows共享网络文件夹上的git commit

时间:2020-10-29 21:19:19

标签: git git-for-windows

我想使用Hyper-V Windows虚拟机进行开发。为了备份我的所有数据,我已经将主机OS的共享目录“挂载”(映射)到虚拟机中。我可以在此共享目录中编辑文件。

但是,git无法正常工作。每当我尝试提交某些内容时,它就会告诉我:

致命:无法更新引用'HEAD':无法追加到'.git / logs / HEAD':无效参数

出什么问题了?这是已知的不兼容性吗?

git status似乎工作正常。

2 个答案:

答案 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_WRONLYO_CREAT 在所有允许进行任何类型的文件写入的文件系统中均受支持,因此问题就在于文件系统对O_APPEND标志。

答案 1 :(得分:0)

如果有人遇到此问题,我已经找到了解决方法。我已将该目录设置为VM中的本地目录,并授予了主机网络访问权限。这样,主机可以通过另一种方式访问​​它,并且我可以在不完全备份VM的情况下备份目录。