Дистрибутив Ubuntu WSL |, Как решить 'Операцию, не разрешенную' на клонирующемся репозитории

Я запускаю 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'

Я попробовал следующее:

  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, ничто, кажется, не работает.

6
задан 4 February 2019 в 09:31

4 ответа

/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 в его текущей форме.

6
ответ дан 23 November 2019 в 07:16

У меня была та же проблема. Попробуйте это:

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

Измените букву диска на то, с чем один у Вас есть проблема.

12
ответ дан 23 November 2019 в 07:16

У меня была та же проблема. Моим решением является к клону мерзавца мой repo в месте WSL по умолчанию (это работает), и используйте Код Visual Studio к удаленному доступу repos моего WSL. Тем путем Вы не должны будете использовать/mnt/c вообще.

Ссылки: https://code.visualstudio.com/docs/remote/wsl

2
ответ дан 23 November 2019 в 07:16

Вы можете автоматически монтировать диски Windows под WSL с параметром метаданных, который позволяет приложениям, таким как git, использовать chmod и устранять эту проблему.

Отредактируйте /etc/wsl.conf (создайте его, если он не существует). Добавьте следующее:

[automount]
options = "metadata"

Затем:

  • Перезагрузите Windows
  • Выйдите из всех сеансов WSL, запустите wsl --shutdown из PowerShell или CMD и снова запустите WSL
  • Выйдите из единственного сеанса , завершите его с помощью wsl --terminate <имя_дистрибутива> и запустите снова,

Затем больше никогда об этом не беспокойтесь.

67
ответ дан 23 May 2020 в 03:21

Другие вопросы по тегам:

Похожие вопросы: