adblog

Git identita nastavená automaticky podle složek

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ě.