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.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *