Я запускаю Ubuntu 18.04 как Подсистема для Windows. Я сделал это в нескольких ПК и никогда не имел эту проблему. Я пытаюсь к 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, ничто, кажется, не работает.
/mnt/c/Users/...
находится на самом разделе Windows NTFS, а не в WSL's ext4
отформатированная система. Поэтому необходимо рассматривать его, поскольку Вы были бы раздел NTFS на карте с интерфейсом USB на фактической установке Ubuntu, и примите ограничения NTFS.
Разделы NTFS не поддерживают chmod
или подобные команды полномочий Linux, и в отличие от этого в фактических установках Ubuntu, которые не делают ошибки, но не вносить изменения полномочий, WSL, не передают эту информацию назад Вам, это просто ошибки, как Вы видите здесь.
Вы не можете сделать a git clone
нормально в /mnt/c/...
пространство в WSL из-за схем разрешения Linux и chmod
не работать правильно. Это - ограничение WSL в его текущей форме.
У меня была та же проблема. Попробуйте это:
sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata
Измените букву диска на то, с чем один у Вас есть проблема.
У меня была та же проблема. Моим решением является к клону мерзавца мой repo в месте WSL по умолчанию (это работает), и используйте Код Visual Studio к удаленному доступу repos моего WSL. Тем путем Вы не должны будете использовать/mnt/c вообще.
Вы можете автоматически монтировать диски Windows под WSL с параметром метаданных, который позволяет приложениям, таким как git, использовать chmod и устранять эту проблему.
Отредактируйте /etc/wsl.conf
(создайте его, если он не существует).
Добавьте следующее:
[automount]
options = "metadata"
Затем:
wsl --shutdown
из PowerShell или CMD и снова запустите WSLwsl --terminate <имя_дистрибутива>
и запустите снова,Затем больше никогда об этом не беспокойтесь.