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-updategancho (en su .git/hooksdirectorio) para llamar automáticamente chown john:john . -Rdespués de fusionar / extraer ( vea esa solución SO para ver un ejemplo ).
Las soluciones alternativas son:
- Ejecútelo
git pullcomo 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 pulldentro del post-receiveenlace del repositorio desnudo).
johnel propietario del directorio actual?