Dim*_*fst 66 git clone chmod windows-subsystem-for-linux
我正在运行 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'
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
? 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,似乎没有任何效果。
小智 102
我遇到过同样的问题。尝试这个:
sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata
Run Code Online (Sandbox Code Playgroud)
将驱动器号更改为您遇到问题的任何驱动器号。
小智 60
您可以使用元数据选项在 WSL 下自动挂载 Windows 驱动器,该选项允许应用程序(如 git)使用 chmod 并修复此问题。
编辑/etc/wsl.conf(如果它不存在则创建它)。添加以下内容:
[automount]
options = "metadata"
Run Code Online (Sandbox Code Playgroud)
然后:
wsl --shutdown从 PowerShell 或 CMD运行,然后再次启动 WSLwsl --terminate <distroName>,然后再次启动它,然后再也不用担心了。
Tho*_*ard 31
/mnt/c/Users/...位于 Windows NTFS 分区本身上,而不是在 WSL 的ext4格式化系统中。因此,您必须像对待实际 Ubuntu 安装中 U 盘上的 NTFS 分区一样对待它,并接受 NTFS 的限制。
NTFS 分区不支持chmod或类似的 Linux 权限命令,并且与不出错但不进行任何权限更改的实际 Ubuntu 安装不同,WSL 不会将此信息中继回给您,它只是如您在此处看到的那样出错.
由于 Linux 权限架构并且无法正常工作,您无法对WSL 中git clone的/mnt/c/...空间进行理智的chmod处理。这是 WSL 当前形式的一个限制。
小智 7
我遇到了同样的问题。我的解决方案是在默认的 WSL 位置 git clone 我的 repo(它可以工作),并使用 Visual Studio Code 远程访问我的 WSL 的 repos。这样你就不必使用 /mnt/c 了。
链接:https : //code.visualstudio.com/docs/remote/wsl
| 归档时间: |
|
| 查看次数: |
60767 次 |
| 最近记录: |