Como gerenciar múltiplos profiles no Git

Romulo Scampini
Code Prestige
Published in
2 min readDec 13, 2017

--

Gerenciar múltiplos profiles do git sempre foi um problema pra mim. Eu uso o git com o perfil da empresa e pessoal, mas ambos com configurações de e-mail e atalhos diferentes. Quantas vezes commitei no projeto da empresa com profile pessoal, e vice-versa? Muito mais do que eu gostaria.

A solução que tinha encontrado até então era ter dois arquivos de configuração (.gitconfig) e um script bash que ficava alternando entre eles de acordo com o profile escolhido. Ainda sim, eu sempre tinha o problema de esquecer de executar o script e de novo fazer o commit com o perfil errado.

Depois de pesquisar novamente por outra solução mais eficaz, descobri que à partir da versão 2.13 do git, foi implementada uma solução melhor e automática, sem a necessidade de ficar executando o script bash para alternar entre os profiles. Estou falando do includeIf.

IncludeIf

O includeIf é, como o nome sugere, um include condicional. Ou seja, é possível utilizar as configurações de outro arquivo de configuração git à partir de uma dada condição. Com isso, conseguir eliminar completamente a necessidade do script bash.

Para o meu caso, que tenho as pastas de projetos separadas, uma para projetos pessoais e outra para os da empresa, utilizei a opção gitdir, que usa um arquivo .gitconfig de acordo com a pasta configurada.

Segue o conteúdo de cada arquivo antes de utilizar o includeIf:

Arquivo .gitconfig para projetos pessoais, antes do includeIf
Arquivo .gitconfig.empresa para projetos da empresa, antes do includeIf

Sabendo que todos os projetos da empresa, estarão em alguma pasta dentro de "/Users/romuloscampini/workspace-empresa" , eu utilizei a seguinte modificação no meu .gitconfig pessoal.

Arquivo .gitconfig para projetos pessoais, mas que utiliza o .gitconfig.empresa quando estou utilizando o git dentro da pasta de projetos da empresa

E pronto, problema resolvido! :)

O único detalhe que quero ressaltar nessa solução é que coloquei a "/" no final da pasta no gitdir, isso porque eu quero que essa configuração sirva para todos os diretórios dentro dessa pasta. Porém o git nos oferece muita flexibilidade para essas regras. Nesse link, você encontra outras diversas maneiras de utilizá-lo.

Agora nunca mais irei ver os dados do trabalho nos meus trabalhos pessoais e vice-versa! (e espero que você também não! rs)

Gostou? Recomende 👏 este artigo , comente, acompanhe nossa publicação e compartilhe!

Siga nossa publicação e não perca os próximos artigos! http://www.codeprestige.com.brFacebook, Twitter, Youtube

--

--