Adicionando múltiplas configurações de GIT em sua máquina.
Published: 2024-03-03 18:55:39

Neste mini tutorial irei demonstrar como adicionar múltiplas configurações de **GIT** em sua WorkStation ou HomeStation.

**Cenário de exemplo:** Neste exemplo vamos utilizar múltiplas configurações do **GIT** para acessar repositórios Github com (Personal Access Token), porém, o tutorial é facilmente adaptável para outros cenários.

Vamos supor que você precise em uma mesma máquina configurar seu email e acesso ao github do trabalho e seu github pessoal.



**Passo 0:**  Crie sua chave pessoal de acesso do GitHub.
Em seu perfil do GitHub acesse e crie sua chave com as permissões necessárias:

**Settings > Developer Settings > Personal Access Token**

Vamos supor que já tenha sua chave de acesso aos 2 repositórios remotos (trabalho e pessoal)

Vamos começar de fato a adição de multi-config do GIT em sua máquina.
Toda configuração global do GIT em sua máquina fica por padrão em um arquivo chamado **.gitconfig** que está no diretório do seu usuário.

**Ex. Windows:** C:/Users /SEU-USUARIO/.gitconfig

**Ex. Linux:** /home/SEU-USUARIO/.gitconfig

**Obs:** esses são os diretórios padrão, dependendo de sua configuração ou distro o arquivo pode estar localizado em local diferente.

Neste arquivo colocamos nossas configurações do **GIT** como, por exemplo, nome de usuário, e-mail, branch padrão, editor padrão...

Aqui está uma configuração de exemplo:

```
[user]
	name = Meu Usuario Padrao
	email = meu-email-padrao@mail.com
[init]
	defaultBranch = main
[url "https://MINHA-CHAVE-PADRAO:@github.com/"] 
	insteadOf = https://github.com/
[credential]
	helper = manager
[core]
	editor = code
[coler]
	ui = auto
```

Neste mesmo diretório vamos criar arquivos extras para nossas configurações especificas.

Vou criar dois Arquivos chamados **.gitconfig-personal** e **.gitconfig-work.**

Vou criar também duas pastas (diretórios) onde vou utilizar cada configuração.

```
C:/Users/SEU-USUARIO
.gitconfig
.gitconfig-personal
.gitconfig-work
--/personal (Diretório onde irá utilizar as configs pessoais)
--/work (Diretório onde irá utilizar as configs de trabalho)
```

Nesses arquivos vamos adicionar nossas chaves e e-mail especifico para cada contexto.

**.gitconfig-personal**


```
[user]
	name = Meu Usuario Pessoal
	email = meu-email-pessoal@mail.com
[url "https://MINHA-CHAVE-PESSOAL:@github.com/"] 
	insteadOf = https://github.com/
```

**.gitconfig-work**

```
[user]
	name = Meu Usuario Trabalho
	email = meu-email-trabalho@mail.com
[url "https://MINHA-CHAVE-TRABALHO:@github.com/"] 
	insteadOf = https://github.com/
```

Pronto, adicionamos usuário, e-mail e chave especifica para seu devido uso, aqui também é possível adicionar outras configurações, caso não especifique uma certa configuração, o **GIT** irá pegar no arquivo **_.gitconfig_** que é a configuração global.

Agora vamos dizer ao nosso arquivo de configuração global **_.gitconfig_** para incluir esses novos arquivos de configuração e especificar onde ele vai utilizar cada um.

```
[includeIf "gitdir:C:/Users/MEU-USUARIO/personal/"]
	path = C:/Users/MEU-USUARIO/.gitconfig-personal
[includeIf "gitdir:C:/Users/MEU-USUARIO/work/"]
	path = C:/Users/MEU-USUARIO/.gitconfig-work
```

Pronto, agora sempre que usar o GIT na pasta **C:/Users/MEU-USUARIO/personal/** o GIT irá usar as configurações especificadas no arquivo **.gitconfig-personal** e o mesmo acontecerá para o work, caso não esteja em nenhuma dessas pastas o GIT irá usar suas configs padrão do arquivo **.gitconfig**

Arquivo **.gitconfig** final

```
[user]
	name = Meu Usuario Padrao
	email = meu-email-padrao@mail.com
[init]
	defaultBranch = main
[url "https://MINHA-CHAVE-PADRAO:@github.com/"] 
	insteadOf = https://github.com/
[credential]
	helper = manager
[core]
	editor = code
[coler]
	ui = auto
[includeIf "gitdir:C:/Users/MEU-USUARIO/work/"]
	path = C:/Users/MEU-USUARIO/.gitconfig-work
[includeIf "gitdir:C:/Users/MEU-USUARIO/personal/"]
	path = C:/Users/MEU-USUARIO/.gitconfig-personal
```