Git "fatal: обнаружены сомнительные права собственности в репозитории"

Git "fatal: обнаружены сомнительные права собственности в репозитории"
Description:    Ubuntu 22.04.1 LTS
Release:        22.04

Я пытаюсь выполнить некоторые команды git под пользователем, www-dataно это не работает.

Чтобы устранить неполадки, я попытался запустить, sudo -u www-data git showно он возвращаетсяfatal: detected dubious ownership in repository

Если я запущу, sudo -u www-data git diff --shortstatон вернетсяwarning: Not a git repository. Use --no-index to compare two paths outside a working tree

Я также попробовал добавить вsudoers

www-data ALL=(ALL) NOPASSWD: /usr/bin/git show

# and also

www-data ALL=(ALL) NOPASSWD: /usr/bin/git

Все еще получаю те же ошибки. Есть идеи почему? Спасибо.

решение1

Git требует, чтобы текущий пользователь был владельцем файлов. Это не работает, если текущий пользователь является «членом» группы.

Для .gitфайлов, принадлежащихuser1:group1

  • Git не выдаст ошибку, если выuser1
  • Git выдаст ошибку, если выuser2:group1

Решение 1 (лучшее)

Так как это автоматизировано/cron, проще просто указать пользователя, от имени которого будет выполняться. Укажите пользователя перед командой git

sudo -u <user> git ...

Решение 2

Немного более громоздко, так как вам нужно добавить каждый репозиторий в , userи .gitconfigздесь есть очень подробный ответhttps://stackoverflow.com/a/73100228/3872647

[safe]
    directory = <real path of git repository, symlink won't work here>

Надеюсь, это достаточно ясно, в противном случае, пожалуйста, спрашивайте или оставляйте комментарии, и я изменю этот ответ.

решение2

+1 за «git требует, чтобы текущий пользователь был владельцем файлов»

  • Моя текущая версия git — 2.43.1, и это сообщение об ошибке появилось в ?.?.?
  • настройка safe.directories ничего не дала
  • скрипт, который я использую, начинается с sudo -u www-data bash -c '...'того, что я обнаружил, что, по крайней мере, .git и children должны принадлежатьwww-data

решение3

Итак, я обнаружил, что если отредактировать файл .gitconfig в папке пользователя (должен быть что-то вроде /home/your_user/.gitconfig) и вставить: ошибка больше не появится.
[safe]
directory = /path/to/directory

fatal: detected dubious ownership in repository

Связанный контент