Git “fatal: detectou propriedade duvidosa no repositório”

Git “fatal: detectou propriedade duvidosa no repositório”
Description:    Ubuntu 22.04.1 LTS
Release:        22.04

Estou tentando cronometrar alguns comandos git sob o usuário www-datae não funciona.

Para solucionar o problema, tentei executar sudo -u www-data git showmas ele retornafatal: detected dubious ownership in repository

Se eu executar sudo -u www-data git diff --shortstatele retornawarning: Not a git repository. Use --no-index to compare two paths outside a working tree

Eu também tentei adicionar emsudoers

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

# and also

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

Ainda recebendo os mesmos erros. Alguma idéia do porquê? Obrigado.

Responder1

O Git exige que o usuário atual seja o proprietário dos arquivos, não funciona se o usuário atual for um "membro" do grupo

Para .gitarquivos pertencentes auser1:group1

  • Git não lançará erro se você estiveruser1
  • Git lançará erro se você estiveruser2:group1

Solução 1 (melhor)

Como isso é automatizado/cron, é mais fácil apenas prefixar o usuário para executar. Especifique o usuário antes do comando git

sudo -u <user> git ...

Solução 2

Um pouco mais complicado, pois você precisa adicionar todos os repositórios aos usere .gitconfighá uma resposta muito detalhada aquihttps://stackoverflow.com/a/73100228/3872647

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

Espero que isso esteja claro o suficiente; caso contrário, pergunte ou comente e modificarei esta resposta.

Responder2

+1 em "git requer que o usuário atual seja o proprietário dos arquivos"

  • minha versão atual do git é 2.43.1 e esta mensagem de erro é nova em ?.?.?
  • configurar safe.directoreries não fez nada
  • um script que estou usando começa sudo -u www-data bash -c '...'e descobri que, de fato, pelo menos .git e filhos precisam pertencer awww-data

Responder3

Então, descobri que se você editar o arquivo .gitconfig na sua pasta de usuário (deve ser algo como /home/your_user/.gitconfig) e inserir: o erro não apareceria mais.
[safe]
directory = /path/to/directory

fatal: detected dubious ownership in repository

informação relacionada