Cuando usa git pull
(que es equivalente a git fetch; git merge
), git actualizará los archivos sin cambiar de propietario (git no almacena esa información). Pero si hay nuevos archivos para crear, el usuario actual se establecerá como el propietario.
Hay una solución diferente para resolver esto. Lo más fácil es probablemente agregar un post-update
gancho (en su .git/hooks
directorio) para llamar automáticamente chown john:john . -R
después de fusionar / extraer ( vea esa solución SO para ver un ejemplo ).
Las soluciones alternativas son:
- Ejecútelo
git pull
como el usuario john en lugar de root (eso requerirá permisos de escritura en john para el directorio .git).
- Cree un enlace para realizar la implementación, que utilizará a john como usuario, o haga la tarea después de la actualización (por lo que tendrá que hacerlo
git pull
dentro del post-receive
enlace del repositorio desnudo).
john
el propietario del directorio actual?