WSL Ubuntu Distro | 如何解决克隆存储库时出现“操作不允许”的问题

WSL Ubuntu Distro | 如何解决克隆存储库时出现“操作不允许”的问题

我正在运行 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'

我尝试了以下操作:

  1. ❯ git config core.fileMode false,结果如下 fatal: not in a git directory

  2. ❯ git config --global core.filemode false

  3. ❯ git config --add --global core.filemode false

似乎什么都不起作用。我已经在这里尝试了几个答案,但 WSL 似乎有点棘手。有人知道如何解决这个问题吗?

我也尝试了这个问题中的所有方法:https://stackoverflow.com/questions/1580596/how-do-i-make-git-ignore-file-mode-chmod-changes,似乎什么都不起作用。

答案1

我也遇到了同样的问题。试试这个:

sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata

将驱动器号更改为您遇到问题的任何驱动器号。

答案2

您可以使用元数据选项在 WSL 下自动挂载 Windows 驱动器,该选项允许 git 等应用程序使用 chmod 并修复此问题。

编辑/etc/wsl.conf(如果不存在则创建)。添加以下内容:

[automount]
options = "metadata"

然后:

  • 重新启动 Windows
  • 退出所有 WSL 会话,wsl --shutdown从 PowerShell 或 CMD 运行,然后重新启动 WSL
  • 退出你唯一的会话,用 终止它wsl --terminate <distroName>,然后重新启动它,

以后就再也不用担心了。

答案3

/mnt/c/Users/...位于 Windows NTFS 分区本身,而不是 WSLext4格式化系统内。因此,您必须将其视为实际 Ubuntu 安装中的 USB 记忆棒上的 NTFS 分区,并接受 NTFS 的限制。

NTFS 分区不支持chmod或类似的Linux权限命令,并且与实际的 Ubuntu 安装不同,后者不会出现错误但不会进行任何权限更改,WSL 不会将此信息传回给您,它只是像您在此处看到的那样出现错误。

由于 Linux 权限架构无法正常工作,您无法在 WSL 中对空间进行git clone合理操作。这是 WSL 当前形式的限制。/mnt/c/...chmod

答案4

我遇到了同样的问题。我的解决方案是在默认 WSL 位置 git clone 我的存储库(有效),然后使用 Visual Studio Code 远程访问我的 WSL 存储库。这样你就根本不需要使用 /mnt/c 了。

链接: https://code.visualstudio.com/docs/remote/wsl

相关内容