This blog is still being translated into English. I will publish it as soon as I am done

Configurar mais de uma conta do git na sua máquina

20 de abr. de 2022 - 0 min de leitura

Contextualizando

Algumas empresas que passei, precisei usar minha própria máquina para exercício do meu trabalho, com isso, acabava esbarrando em algumas dificuldades. Uma delas, era justamente manter separado o ambiente para os meus projetos pessoais e o ambiente para o trabalho. Durante muito tempo, eu acabava sendo bem Hard Coded, inseria as configurações para aquele projeto de forma manual e local. Eu sabia que não era o melhor caminho, sempre me incomodou.

Depois de algumas empresas, ficando de saco cheio de fazer isso manualmente, acabei encontrando uma solução bem prática e bem mais amigável. O objetivo deste post é passar rapidinho como tu podes alcançar essa organização através das configurações que vou apresentar.

Por que isso é importante?

Bom, essa resposta é bem simples.

  • Maior agilidade na configuração dos projetos, visto que não vai ser mais necessário configurar em cada projeto as informações que podem ser globais para uma empresa X
  • O repositório da empresa X terá o registro do seu e-mail e nome profissional, que é o mais esperado, não acha?
  • Vai te ajudar a separar muito bem o teu mundo profissional do pessoal

Configurando contas diferentes

Essa configuração funciona bem para Linux, Mac e Windows com WSL!

Quando fazemos um commit, o git vai fazer uma varredura, inicialmente, dentro da pasta .git do projeto em que você está trabalhando e caso não tenha definido nada localmente, ele vai buscar configurações globais, que ficam no arquivo .gitconfig que se encontra na pasta raíz do seu usuário. E é nele que vamos mexer para alcançar o que desejamos. Vamos lá...

Primeiro, vamos precisar de um diretório para inserir tudo que for do trabalho e tudo que for pessoal, eu costumo utilizar uma estrutura como esta

├── www/
│   ├── personal/
│   ├── empresa-x/

Dentro do diretório www você pode adicionar o diretório de projetos pessoais personal e todos os outros diretórios de empresas que quiser.

Agora, retornando para a raíz de seu usuário você deve criar arquivos correspondentes para cada um dos diretórios que você criou dentro de www. Assim como no exemplo abaixo

touch .gitconfig-personal 
touch .gitconfig-empresax 

dentro dele você pode adicionar as configurações que deseja, vou utilizar nome e e-mail como exemplo.

# .gitconfig-personal

[user]
  name = "Liandro Silva"
  email = "email@email.com"
# .gitconfig-empresax

[user]
  name = "Liandro Silva"
  email = "email@empresax.com"

Agora, precisamos fazer o nosso arquivo principal .gitconfig enxergar esses arquivos, para isso devemos acessar ele de acordo com o comando abaixo

git config --global --edit

E, adicionar o seguinte trecho de código

[includeIf "gitdir:~/www/personal/"]
  path = ~/.gitconfig-personal   
[includeIf "gitdir:~/www/empresa-x/"]
  path = ~/.gitconfig-empresax     

Você pode inserir este trecho no final de suas configurações globais

Agora, sempre que commitar, o git vai verificar se está em qual diretório está e vai informar o e-mail e nome de acordo com o que foi configurado.

Conclusão

Se tiver 8 horas para cortar uma árvore, gaste seis afiando seu machado. Ou seja, não seja apressado como eu fui :), faça mais com menos!