Um Desenvolvedor, Várias Identidades
Imagine um desenvolvedor que atua em diversos projetos em alguns clientes e está fazendo um curso (faculdade, mestrado ou qualquer tipo de curso) e também tem diversos projetos pessoais que sempre versiona no seu GitHub pessoal (se identificou com esse cenário). Cada uma dessas frentes exige uma identidade diferente no Git, certo?
Em um certo momento, esse desenvolvedor percebe que estava enviando commits do projeto corporativo com o e-mail pessoal, misturando identidades e gerando confusão tanto para ele quanto para seus colegas do trabalho, do curso e em seus projetos pessoais. Foi então que decidiu resolver isso com uma abordagem mais elegante e automatizada: usando o arquivo .gitconfig para configurar perfis por pasta de projeto.
Neste artigo, vamos explorar como configurar múltiplas identidades no Git de forma eficiente, com base em um cenário real. Se você também vive entre múltiplas contas, continue lendo para entender como o Git pode trabalhar a seu favor.
Entendendo a Estrutura do .gitconfig
O Git permite configurar suas preferências em três níveis:
Global: Aplica-se a todos os repositórios do usuário. Normalmente salvo em ~/.gitconfig no Linux/macOS ou C:/Users//.gitconfig no Windows.
Local: Específico de um repositório, salvo no arquivo .git/config dentro do próprio repositório.
Sistema: Configurações que afetam todos os usuários da máquina.
Neste artigo, vamos focar na configuração global com inclusões condicionais, que é uma forma poderosa de alternar configurações com base no diretório do projeto.
O Cenário: Três Contextos, Três Perfis
Os projetos estão organizados da seguinte maneira:
Projetos da empresa: C:/Proj/EmpresaX/
Projetos acadêmicos: C:/Proj/Academico/
Projetos pessoais: qualquer outro diretório da máquina
Cada contexto precisa de uma identidade Git diferente. Veja abaixo a estrutura de um exemplo de .gitconfig global e como ele resolve esse desafio.
[init]
defaultBranch = main
[includeIf "gitdir:C:/Proj/canaldeploy/**"]
path = C:/Users/<usuario>/.gitconfig-canaldeploy
[includeIf "gitdir:C:/Proj/Academico/**"]
[user]
name = Nome Exemplo
email = usuario.academico@email.com
[user]
name = Nome Exemplo
email = usuario.pessoal@email.com
[http]
sslverify = false
Explicando o Arquivo Passo a Passo
- Definição do Branch Padrão
[init]
defaultBranch = main
Define que todos os novos repositórios iniciados terão o branch principal como main.
- Inclusão Condicional por Caminho
[includeIf "gitdir:C:/Proj/canaldeploy/**"]
path = C:/Users/usuario/.gitconfig-canaldeploy
Sempre que o Git for utilizado em um repositório dentro desse caminho, ele incluirá as configurações do arquivo .gitconfig-canaldeploy, permitindo isolar nome, e-mail, credenciais e chaves SSH corporativas (mas não vamos abordar chaves ssh nesse artigo)
Abaixo, segue o conteúdo do arquivo .gitconfig-empresax
[user]
name = Felipe Augusto
email = felipe.augusto@canaldeploy.com.br
- Configuração Direta para Projetos Acadêmicos - Caso não queira criar multiplos arquivos, é possível fazer a configuração dentro do próprio .gitconfig
[includeIf "gitdir:C:/Proj/Academico/**"]
[user]
name = Felipe Augusto
email = felipe.augusto@academico.com
Nesse caso, não é usado um arquivo externo, mas sim a configuração embutida diretamente dentro do includeIf.
- Identidade Padrão
[user]
name = Felipe Augusto
email = felipe.augusto@pessoal.com
Aplica-se a todos os outros diretórios que não se encaixam nas condições anteriores. Representa o perfil pessoal.
- SSL e Safe Directory
[http]
sslverify = false
Desabilita a verificação de SSL, útil em ambientes corporativos com proxies.
Como verificar se a configuração está correta
Abra um terminal dentro de cada projeto e execute:
git config user.email
Isso retornará o e-mail em uso naquele diretório, confirmando se a identificação está correta.
Se quiser ver todas as configurações que estão sendo aplicadas:
git config --list --show-origin
Considerações Finais
Configurar corretamente os perfis do Git evita confusão de identidade e dor de cabeça para resolver esses problemas, que apesdar de simples, podem demorar algumas horas para serem resolvidos. Além de manter seu histórico de commits limpo e profissional.
Com poucos blocos de código, você pode tornar seu ambiente Git inteligente, responsivo ao contexto e livre de erros comuns.
Com essa abordagem, qualquer pessoa pode aproveitar o poder do .gitconfig para atuar em múltiplos contextos sem dores de cabeça. Basta planejar, configurar e versionar com tranquilidade.
Gostou dessa dica?
Temos outras muitas no canal DEPLOY
Top comments (0)