Pokud pracujete na počítači s vícero identitami, například pracovní a soukromou, a v rámci obou potřebujete pracovat s git repozitáři, existuje několik variant, jak zajistit, že v každém repozitáři máte správnou identitu.
Globální nastavení, lokální změny
Základním a také nejčastějším způsobem, jak sdílet více identit v git repozitářích, je globální nastavení gitu přes příkazy
$ git config --global user.name "Jmeno Prijmeni"
$ git config --global user.email "pracovniemail@example.com"
a v repozitáři, ve kterém chceme mít jinou identitu, musíme změnit lokální nastavení:
$ git config user.name "Nickname"
$ git config user.email "soukromy-nick@posta.com"
Tento způsob lze použít, pokud jinou identitu používáte nepravidelně.
Konfigurační oddělení identit
Při pravidelném používání více identit je vhodné použít jiné nastavení. Takové nastavení vyžaduje oddělení složek pro repozitáře v pracovním adresáři dle počtu identit. V případě pracovní a osobní identity tak budeme mít složky, kam budeme klonovat kód z repozitářů:
~/dev/work
~/dev/personal
Pokud tedy budeme pracovat s pracovním kódem, jeho repozitář bude v cestě ~/dev/work/work-project-repo a osobní v ~/dev/personal/private-cool-project-repo.
Díky tomu jsme schopni říci v konfiguraci gitu .gitconfig, jakou identitu má pro kterou podsložku použít. Nejprve ale potřebujeme separátní git konfigurace pro osobní a pracovní identitu.
Nejprve vytvoříme konfigurační soubory ~/.gitconfig-personal a ~/.gitconfig-work:
$ touch ~/.gitconfig-personal
a jeho obsah:
1 2 3 | [user]
name = Jmeno Prijmeni
email = nickname@mail.com
|
$ touch ~/.gitconfig-work
a jeho obsah:
1 2 3 | [user]
name = Jmeno Prijmeni
email = jmeno.prijmeni@firma.cz
|
Pak stačí doplnit do .gitconfig část:
1 2 3 4 | [includeIf "gitdir:~/dev/personal/"]
path = .gitconfig-personal
[includeIf "gitdir:~/dev/work/"]
path = .gitconfig-work
|
A nyní je vše nastaveno, což lze vyzkoušet, pokud si např. naklonujete repozitář do jedné z podsložek.
Shrnutí
Existuje několik způsobů konfigurace, jejichž použití je vhodné pro určité scénáře. Pro automatické nastavení je vhodné oddělit projekty adresářově.