git - Windows 共享网络文件夹上的 git commit
问题描述
我想使用 Hyper-V Windows 虚拟机进行开发。为了备份我的所有数据,我将主机操作系统的共享目录“挂载”(映射)到虚拟机中。我可以很好地编辑这个共享目录中的文件。
但是,git 不能正常工作。每当我尝试提交某事时,它都会告诉我:
致命:无法更新 ref 'HEAD':无法附加到 '.git/logs/HEAD':无效参数
问题是什么?这是已知的不兼容吗?
git status
似乎工作得很好。
解决方案
我不能说这是否是已知的不兼容,但这是:
fatal: cannot update the ref 'HEAD': unable to append to '.git/logs/HEAD': Invalid argument
强烈建议您使用的特定文件系统设置根本不支持 open-for-append:
*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
受支持,问题必须出在文件系统对标志的实现上。
推荐阅读
- google-apps-script - 配置后 Google Chat API onMessage 触发器失败
- react-native - 如何在 react native 中使用 react-native-animated-tabbar 库
- entity-framework-core - 首先使用 Azure Pipelines 部署 EF 代码
- java - 使用 IBM JDK 而不使用 TLS 1.2 的 Gradle 构建
- json - Python 错误:额外数据:加载大 Json 文件时的第 1 行
- flutter - 溢出颤动的列和行
- javascript - 使用 Javascript 更正生成的错误链接
- stripe-payments - 使用条纹的 SaaS 应用程序 - 在完成注册之前向客户卡收费?
- c++ - 加载 wintab32.dll 并调用 WTInfoW 时,不会在程序终止时卸载隐式加载的库
- python - 如何在 Django 模型和视图中返回单个对象