Git "fatal: se detectó propiedad dudosa en el repositorio"

Git "fatal: se detectó propiedad dudosa en el repositorio"
Description:    Ubuntu 22.04.1 LTS
Release:        22.04

Estoy intentando cron algunos comandos de git bajo el usuario www-datay no funciona.

Para solucionar el problema, intenté ejecutarlo sudo -u www-data git showpero vuelvefatal: detected dubious ownership in repository

Si lo ejecuto sudo -u www-data git diff --shortstatregresawarning: Not a git repository. Use --no-index to compare two paths outside a working tree

También intenté agregarsudoers

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

# and also

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

Sigo recibiendo los mismos errores. ¿Alguna idea de por qué? Gracias.

Respuesta1

Git requiere que el usuario actual sea el propietario de los archivos, no funciona si el usuario actual es un "miembro" del grupo

Para .gitarchivos pertenecientes auser1:group1

  • Git no arrojará error si es asíuser1
  • Git arrojará un error si es así.user2:group1

Solución 1 (mejor)

Dado que esto es automatizado/cron, es más fácil simplemente anteponer el usuario para ejecutarlo. Especifique el usuario antes del comando git

sudo -u <user> git ...

Solución 2

Un poco más engorroso ya que necesita agregar cada repositorio al user's .gitconfigy hay una respuesta muy detallada aquíhttps://stackoverflow.com/a/73100228/3872647

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

Espero que esto sea lo suficientemente claro; de lo contrario, pregunte o comente y modificaré esta respuesta.

Respuesta2

+1 para "git requiere que el usuario actual sea el propietario de los archivos"

  • mi versión actual de git es 2.43.1 y este mensaje de error es nuevo a partir de ?.?.?
  • configurar directorios seguros no hizo nada
  • comienza un script que estoy usando sudo -u www-data bash -c '...'y descubrí que, de hecho, al menos .git y los niños deben ser propiedad dewww-data

Respuesta3

Entonces, descubrí que si editas el archivo .gitconfig en tu carpeta de usuario (debería ser algo como /home/your_user/.gitconfig) e insertas: el error ya no aparecería.
[safe]
directory = /path/to/directory

fatal: detected dubious ownership in repository

información relacionada