Urcite se vam nekdy stalo, ze jste neco commitovali na serveru a do historie jste si zavlekly neco jako:
commit 8f160534070012c87c409e5b19028ad0062f0310 Author: root <[email protected]> Date: Wed Jun 26 17:16:31 2013 +0000 blocks.pickle, peers.pickle added to .gitignore commit 96e83891bfdcad41c545220e1957fba1ba72c2cd Author: root <[email protected]> Date: Tue May 28 12:34:04 2013 +0000 Initial import
Asi to znate. Ale nastavit uzivatele a email na serveru neni nejlepsi reseni, protoze muze pristupovat vice lidi a kazdy chce vytvaret commity pod svym jmenem.
SSH forward promennych
Resenim muze byt posilani environment promenych po SSH. Vyzaduje to sice zmenu nastaveni SSH serveru, ale je to jediny zpusob jak nastavit prostredi Gitu automaticky pro konkretniho uzivatele.
Na lokalnim pocitaci
Na strane klienta musime mit v bashrc vyexportovane promenne, ktere nastavuji v Gitu jmeno a email pro autora i commitera. Jsou to tyto promenne:
export GIT_AUTHOR_NAME="Ondrej Sika" export GIT_AUTHOR_EMAIL="[email protected]" export GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME export GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL
a je jeste nutne tyto promenne posilat pri SSH spojeni. To se da globalne povolit v SSH konfigu (.ssh/config) takto:
Host * SendEnv GIT_*
A to je na strane klienta vse.
Na serveru
Na serveru je nutne povolit prijimani env promennych Gitu. Do souboru /etc/ssh/sshd_config je nutne pridat nasledujici radku:
AcceptEnv GIT_*
A pak jen restartovat SSH server (service ssh restart), odpojit a pripojit se znovu. Zda vse zafungovalo, zjistite kdyz si vypisete promenne prostredi pomoci:
[email protected]:~# env | grep GIT GIT_COMMITTER_NAME=Ondrej Sika [email protected] GIT_AUTHOR_NAME=Ondrej Sika [email protected]
Ted uz vse funguje, dalsi commit na serveru bude uz se spravnym autorem.