我正在运行 Ubuntu 18.04,作为 Windows 的子系统。我已经在多台 PC 上做到了这一点,但从来没有遇到过这个问题。我尝试这样做git clone <repo>
,我得到了这个:
Cloning into '<repo>'...
error: chmod on /mnt/c/Users/Efsta/Code/<repo>/.git/config.lock failed: Operation not permitted
fatal: could not set 'core.filemode' to 'false'
我尝试了以下方法:
❯ git config core.fileMode false
, 有了这个结果fatal: not in a git directory
❯ git config --global core.filemode false
❯ git config --add --global core.filemode false
似乎没有任何效果。我已经在这里尝试了几个答案,但 WSL 似乎有点棘手。任何人都知道如何解决这个问题?
我也尝试了这个问题的所有内容:https ://stackoverflow.com/questions/1580596/how-do-i-make-git-ignore-file-mode-chmod-changes ,似乎没有任何效果。
我遇到过同样的问题。尝试这个:
将驱动器号更改为您遇到问题的任何一个。
您可以使用元数据选项在 WSL 下自动挂载您的 Windows 驱动器,该选项允许 git 等应用程序使用 chmod 并修复此问题。
编辑
/etc/wsl.conf
(如果它不存在则创建它)。添加以下内容:然后:
wsl --shutdown
从 PowerShell 或 CMD 运行,然后再次启动 WSLwsl --terminate <distroName>
,然后重新开始,然后再也不用担心了。
/mnt/c/Users/...
位于 Windows NTFS 分区本身上,而不是在 WSL 的ext4
格式化系统中。因此,您必须像对待实际 Ubuntu 安装中 USB 记忆棒上的 NTFS 分区一样对待它,并接受 NTFS 的限制。NTFS 分区不支持
chmod
或类似的 Linux 权限命令,并且与实际的 Ubuntu 安装不同,后者不会出错但不会更改任何权限,WSL 不会将此信息转发给您,它只是错误地显示在这里.由于 Linux 权限架构并且无法正常工作,您无法在 WSL 中
git clone
的空间中进行明智的操作。这是当前形式的 WSL 的一个限制。/mnt/c/...
chmod
我遇到了同样的问题。我的解决方案是在默认的 WSL 位置 git 克隆我的存储库(它可以工作),并使用 Visual Studio Code 远程访问我的 WSL 的存储库。这样你就不必使用 /mnt/c 了。
链接: https ://code.visualstudio.com/docs/remote/wsl