Personalizando o Comportamento do Git: Configuração, Aliases e Arquivos Importantes
Personalize o Git com configurações úteis, aliases claros e arquivos importantes como .gitignore e .gitattributes.
Personalizando o Comportamento do Git: Configuração, Aliases e Arquivos Importantes
Personalizar o comportamento do Git ajuda a tornar o controle de versão do dia a dia mais rápido, seguro e previsível. Com a configuração correta do Git, aliases e arquivos importantes em vigor, seu fluxo de trabalho local pode corresponder à forma como sua equipe realmente desenvolve software.
O objetivo não é criar uma configuração engenhosa que ninguém mais entenda. O objetivo é remover o atrito das tarefas comuns, mantendo seus repositórios fáceis de auditar e dar suporte.
Como Funciona a Configuração do Git
O Git lê as configurações de vários lugares, e a configuração mais próxima vence. Isso é importante quando você está depurando por que o Git está usando o nome, editor, ferramenta de mesclagem, finais de linha ou comportamento de assinatura errados.
Os três principais escopos de configuração são:
- Sistema: aplica-se a todos os usuários da máquina.
- Global: aplica-se à sua conta de usuário.
- Local: aplica-se apenas ao repositório atual.
Você geralmente trabalhará com configurações globais e locais. As configurações globais são boas para sua identidade, editor padrão e aliases comuns. As configurações locais são melhores para comportamentos específicos do repositório, como um endereço de e-mail diferente para projetos de trabalho.
Use estes comandos para inspecionar de onde vem uma configuração:
git config --list --show-origin
git config user.email
git config --local user.email
git config --global user.email
Por exemplo, você pode usar seu e-mail pessoal globalmente:
git config --global user.name "Alex Morgan"
git config --global user.email "[email protected]"
Em seguida, dentro de um repositório de trabalho, substitua apenas o e-mail:
git config --local user.email "[email protected]"
Isso evita confirmar acidentalmente em um repositório da empresa com uma identidade pessoal. Também torna o histórico de commits mais limpo para conformidade, propriedade e revisão de código.
Se você quiser uma atualização mais aprofundada sobre configurações de identidade, veja dominando a configuração de usuário do Git.
Configurações Úteis para Personalizar Primeiro
Comece com configurações que melhorem a clareza e evitem pequenos erros. Você não precisa de um arquivo de configuração enorme para obter valor real.
Uma boa base inclui o nome do seu branch padrão:
git config --global init.defaultBranch main
Defina seu editor preferido para que o Git possa abrir mensagens de commit, planos de rebase e notas de mesclagem em uma ferramenta que você realmente usa:
git config --global core.editor "code --wait"
Se você trabalha com macOS, Linux e Windows, os finais de linha merecem atenção. Muitas equipes optam por manter os finais de linha normalizados no repositório e deixar que o editor de cada desenvolvedor cuide da exibição. Uma configuração comum no Windows é:
git config --global core.autocrlf true
No macOS ou Linux, as equipes costumam usar:
git config --global core.autocrlf input
Não altere as configurações de final de linha casualmente em um repositório existente. Se você vir um diff enorme onde cada linha parece modificada, pare e inspecione .gitattributes antes de confirmar.
Você também pode tornar a saída do Git mais legível:
git config --global color.ui auto
git config --global column.ui auto
git config --global branch.sort -committerdate
git config --global tag.sort version:refname
Para puxar alterações, escolha o comportamento que sua equipe espera:
git config --global pull.rebase false
ou:
git config --global pull.rebase true
Nenhuma opção é universalmente correta. Pulls baseados em mesclagem preservam commits de mesclagem. Pulls baseados em rebase mantêm um histórico local linear. A parte importante é escolher intencionalmente e documentar as expectativas da equipe.
Criando Aliases do Git que Economizam Tempo
Os aliases do Git transformam comandos longos em atalhos curtos e memoráveis. Eles são especialmente úteis para comandos que você executa muitas vezes ao dia.
Aqui estão aliases práticos que permanecem legíveis:
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.cm commit
git config --global alias.last "log -1 HEAD --stat"
git config --global alias.unstage "restore --staged"
Depois disso, git st fornece o status e git unstage file.txt remove um arquivo da área de staging sem tocar na sua cópia de trabalho.
Aliases de log são onde muitas equipes obtêm mais valor:
git config --global alias.lg "log --oneline --decorate --graph --all"
Agora você pode executar:
git lg
Isso fornece um gráfico compacto de branches, tags e commits. É útil antes de fazer rebase, mesclar ou limpar branches locais.
Mantenha os aliases simples o suficiente para que um colega de equipe possa adivinhar o que eles fazem. Um alias como git save pode significar commit, stash ou outra coisa, dependendo de quem o criou. Um alias como git unstage é óbvio.
Você pode revisar seus aliases com:
git config --global --get-regexp '^alias\.'
Para mais exemplos, veja criar aliases personalizados do Git.
Arquivos Importantes do Git que Você Deve Conhecer
O comportamento do Git não é controlado apenas por git config. Vários arquivos do repositório moldam o que é rastreado, ignorado, normalizado e protegido.
O arquivo mais comum é .gitignore. Ele diz ao Git quais arquivos não rastreados devem ser ignorados. As entradas típicas incluem saída de build, arquivos de ambiente local, pastas de editor e caches de dependência:
node_modules/
dist/
.env
.DS_Store
Tenha cuidado com padrões amplos. Ignorar *.json pode ocultar arquivos gerados, mas também pode ocultar configurações importantes. Quando possível, ignore diretórios ou nomes de arquivo específicos.
O arquivo .gitattributes controla como o Git trata os tipos de arquivo. É útil para finais de linha, arquivos gerados, comportamento do linguist e estratégias de mesclagem:
* text=auto
*.sh text eol=lf
*.bat text eol=crlf
Isso é especialmente útil em equipes que usam sistemas operacionais diferentes. Reduz diffs ruidosos e evita que scripts quebrem devido a finais de linha incorretos.
O arquivo .git/config armazena a configuração do repositório local. Normalmente, você o edita com git config --local, mas lê-lo pode ajudar a solucionar problemas de remotos, rastreamento de branches e opções específicas do repositório.
Os hooks do Git ficam em .git/hooks/. Eles podem executar scripts antes de commits, pushes, merges e outros eventos. Por padrão, os hooks são locais e não são confirmados como scripts ativos. As equipes que dependem de hooks geralmente usam um script de configuração ou um gerenciador de hooks para instalá-los de forma consistente.
Quando Pedir Ajuda
A maioria das alterações de configuração do Git é segura, mas algumas podem atrapalhar uma equipe se aplicadas sem contexto. Pergunte a um engenheiro sênior, engenheiro de DevOps ou proprietário do repositório antes de alterar regras de final de linha, drivers de mesclagem, requisitos de assinatura ou comportamento de hook compartilhado.
Você também deve pedir ajuda se os commits estiverem aparecendo com a identidade errada em um repositório protegido. Corrigir metadados do autor após o código ter sido enviado pode exigir reescrita do histórico, o que afeta todos que usam aquele branch.
Se o Git de repente se comportar de forma diferente, comece com git config --list --show-origin. Esse único comando geralmente explica o mistério mais rápido do que adivinhar.
A personalização cuidadosa faz com que o Git pareça menos repetitivo sem esconder o que está acontecendo. Mantenha seus aliases claros, mantenha as regras do repositório documentadas e use configurações locais quando um projeto precisar de um comportamento diferente do resto da sua máquina.