¿Por qué cada vez que ejecuto un git pullen mi servidor en vivo, se cambia el propietario de los archivos? Sigo haciendo manualmente a chown john:john index.php.
¿Qué necesito cambiar para que, cuando haga un git pull, el propietario de los archivos sea automáticamente o se quede john?

johnel propietario del directorio actual?git pull?Respuestas:
Cuando usa
git pull(que es equivalente agit 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áticamentechown john:john . -Rdespués de fusionar / extraer ( vea esa solución SO para ver un ejemplo ).Las soluciones alternativas son:
git pullcomo el usuario john en lugar de root (eso requerirá permisos de escritura en john para el directorio .git).git pulldentro delpost-receiveenlace del repositorio desnudo).fuente
git fetchcomo root y luegogit mergecomo usuario john? ¿John todavía necesitará permisos de escritura para el.gitdirectorio?git fetchcomo root, los archivos nuevos en .git / objects` pueden tener root como propietario.git mergecomo el usuario john (la mayoría de las veces) intentará sobrescribir al menos.git/indexy.git/HEAD(lo que podría ser eliminado / creado en cada cambio, supongo), y escribir algunos archivos.git/objects/. + cualquier archivo nuevo en su directorio de trabajo. Tal vez hay excepciones con la combinación de avance rápido, por ejemplo.