Невозможно создать 'путь / к / repo / external / .git / index.lock': разрешение отклонено - PullRequest
0 голосов
/ 11 июня 2019

Я запускаю команду python, которая генерирует некоторый код и проверяет некоторые коммиты, используя git.Однако возникает исключение, когда он пытается создать файл .git / index.lock.Root принадлежит каталог, поэтому я не могу создать файл без sudo.

Я попытался запустить команду с помощью sudo (sudo ./run.py).Это также не сработало, потому что тогда он не может найти мой ключ ssh.Могу ли я обойти это без изменения владельца .git и без создания корневого ключа ssh?Обе эти вещи мне не нужны.Я видел подобные вопросы, подобные этим, но ни один из этих ответов не работает здесь.

fatal: Unable to create '/path/.git/index.lock': Permission denied
Traceback (most recent call last):
  File "./run.py", line 155 in <module>
  ...
  ...
  File "/usr/lib/python3.6/subprocess.py", line 418 in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['git', 'reset', '--hard', <hash>]' returned non-zero exist status 128.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Вы должны клонировать git-репозиторий, используя http или https. И выполните команду ниже: git config - глобальные учетные данные. мерзкий выбор В первый раз он запросит пароль и сохранит его. При следующем запуске git fetch пароль не будет запрашиваться.

Примечание: в случае смены пароля вы должны сделать то же самое.

0 голосов
/ 11 июня 2019

Вы не сможете выполнять какие-либо проверки Git без прав на запись в хранилище.Однако, если вы хотите использовать свой SSH-ключ, вы можете попробовать запустить с sudo -E вместо обычного sudo.Это попросит sudo сохранить ваш домашний каталог и все переменные агента, что позволит вам использовать ваш SSH-ключ.

Обратите внимание, что в некоторых системах возможность сохранения среды отключена или ограничена, и, следовательно, этоне работает в этих случаях.В такой среде вам необходимо отредактировать /etc/sudoers или использовать другой метод для получения учетных данных (например, хранилище учетных данных, принадлежащее пользователю root, и HTTPS).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...