Git pull in un ambiente Linux cambia il proprietario dei file


12

Perché ogni volta che eseguo un git pullsul mio server live, il proprietario dei file viene cambiato? Continuo a fare manualmente a chown john:john index.php.

Cosa devo modificare in modo che, quando faccio un git pull, il proprietario dei file sia automaticamente o rimanga john?


1
Il johnproprietario della directory corrente?
user000001

Sì, john è il proprietario della directory :)
PinoyStackOverflower

1
Quale utente è in esecuzione git pull?
cuonglm,

@Gnouc utente root, sono connesso al nostro server live tramite SSH come utente root :)
PinoyStackOverflower

Risposte:


11

Quando usi git pull(che equivale a git fetch; git merge), git aggiornerà i file senza cambiare proprietario (git non memorizza tali informazioni). Ma se ci sono nuovi file da creare, l'utente corrente verrà impostato come proprietario.

Esiste una soluzione diversa per risolvere questo. Probabilmente è più facile aggiungere un post-updatehook (nella tua .git/hooksdirectory) per chiamare automaticamente chown john:john . -Rdopo l'unione / pull ( vedi la soluzione SO per un esempio ).

Le soluzioni alternative sono:

  • Esegui git pullcome utente john anziché root (che richiederà autorizzazioni di scrittura a john per la directory .git).
  • Crea un hook per effettuare la distribuzione, che utilizzerà john come utente, o eseguirà il chown dopo l'aggiornamento (quindi dovrai farlo git pullall'interno del post-receivehook del repository nudo).

E se lo fai git fetchcome root e poi git mergecome utente john? John avrà ancora bisogno delle autorizzazioni di scrittura per la .gitdirectory?
Wildcard il

Sì, il più delle volte. git fetchcome root, i nuovi file in .git / objects` potrebbero avere root come proprietario. git mergecome l'utente john proverà (la maggior parte del tempo) a sovrascrivere almeno ( .git/indexe .git/HEADche potrebbe essere cancellato / creato ad ogni modifica suppongo), e scrivere alcuni file .git/objects/. + qualsiasi nuovo file nella tua directory di lavoro. Forse ci sono eccezioni con l'unione di avanzamento veloce per esempio.
Asenar,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.