quando você usa git pull
(que é equivalente a git fetch;git merge
), o git atualizará arquivos sem alterar o proprietário (o git não armazena essas informações). Mas se houver novos arquivos para criar, o usuário atual será definido como o proprietário.
Existe uma solução diferente para resolver isso. É mais fácil adicionar um post-update
hooks (no diretório .git/hooks
) para chamar automaticamente chown john:john . -R
após mesclar / puxar ( veja que solução SO para um exemplo ).
A solução alternativa é:
- use o usuário john em vez de root (isso exigirá permissões de gravação para john para o diretório .git)
- crie um hook para fazer a implantação, que usará john como user, ou faça o chown após a atualização (assim você terá que fazer
git pull
dentro dopost-receive
hook do repositório nu)