Git pull em um ambiente Linux altera o proprietário dos arquivos

12

Por que toda vez que eu executo um git pullno meu servidor ativo, o proprietário dos arquivos é alterado? Eu continuo fazendo manualmente um chown john:john index.php.

O que preciso alterar para que, quando fizer um git pull, o proprietário dos arquivos seja ou permaneça automaticamente john?

PinoyStackOverflower
fonte
1
O johnproprietário do diretório atual?
User000001
Sim, John é o proprietário do diretório :)
PinoyStackOverflower
1
Qual usuário está executando git pull?
cuonglm
Usuário root @Gnouc, eu estou logado no nosso servidor ao vivo via SSH como usuário root :)
PinoyStackOverflower

Respostas:

11

Quando você usa git pull(que é equivalente a git fetch; git merge), o git atualiza os 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. O mais fácil é provavelmente adicionar post-updateganchos (em seu .git/hooksdiretório) para chamar automaticamente chown john:john . -Rapós mesclar / puxar ( consulte a solução SO por exemplo ).

As soluções alternativas são:

  • Execute git pullcomo usuário john em vez de root (isso exigirá permissões de gravação para john no diretório .git).
  • Crie um gancho para fazer a implantação, que usará john como usuário, ou faça o chown após a atualização (você precisará fazer isso git pulldentro do post-receivegancho do repositório simples).
Asenar
fonte
E se você fizer git fetchcomo root e depois git mergecomo usuário john? John ainda precisará de permissões de gravação para o .gitdiretório?
Wildcard
Sim, na maioria das vezes. git fetchcomo root, novos arquivos em .git / objects` podem ter root como proprietário. git mergecomo o usuário john tentará (na maioria das vezes) sobrescrever pelo menos .git/indexe .git/HEAD(que pode ser excluído / criado a cada alteração que suponho), e escrever alguns arquivos .git/objects/. + quaisquer novos arquivos no seu diretório de trabalho. Talvez haja exceções com a mesclagem de avanço rápido, por exemplo.
Asenar 9/07/19