Como configuro minha identidade no Git
(benji.dog)Como configurar minha identidade no Git
-
Introdução: este artigo explica como gerenciar identidades adequadas ao seu ambiente de trabalho por meio da configuração do Git. O autor descobriu uma forma de usar
includeIfpara incluir arquivos com base em condições específicas. -
Configuração do Git:
- Usando
includeIf, é possível incluir arquivos de configuração diferentes do Git de acordo com diretórios específicos. - Por exemplo, é possível configurar para que diretórios Git em
~/codeincluam~/.config/git/personal, enquanto os que estão em~/workincluam~/.config/git/work. - Cada arquivo contém informações como nome de usuário, e-mail e chave de assinatura.
- Usando
-
Configuração baseada em URL remota:
- Usando
hasconfig:remote.*.url, é possível montar a configuração do Git de forma condicional quando uma determinada URL remota existir. - Por exemplo, em diretórios que tenham um remoto como
github.com:orgname/**, é possível configurar o uso de~/.config/git/config-gh-org.
- Usando
-
Configuração de chaves SSH:
- É necessário configurar chaves SSH para poder fazer
pullepushnos remotos. - No arquivo
~/.ssh/config, é possível definirHosteIdentityFilepara usar a chave SSH apropriada para cada remoto. - Para usar
IdentityFilediferentes com o mesmoHostname, é preciso definir valores deHostdistintos.
- É necessário configurar chaves SSH para poder fazer
-
Uso da configuração SSH no Git config:
- Para usar uma configuração SSH diferente em repositórios específicos, é possível substituir URLs usando
insteadOfno Git config. - Por exemplo, em vez de
github.com:orgname, pode-se usargh-work:orgnamepara aplicar a configuração SSH correta.
- Para usar uma configuração SSH diferente em repositórios específicos, é possível substituir URLs usando
-
Considerações:
- Essa abordagem pode ter problemas, e o autor gostaria de receber feedback sobre a existência de uma forma melhor.
Material de referência
- O autor consultou vários posts de blog sobre como gerenciar múltiplas identidades no Git.
1 comentários
Comentários no Hacker News
Explica como separar identidades de SSH e Git usando um nome como
gh-work. Todo repositório Git clonado comgh-workpassa a seguir a configuração degh-work.ince usa a mesma chave de assinatura da configuração SSHAo trabalhar em uma startup, havia um colega que mudava a identidade todos os dias para nomes de conto de fadas. Isso não ajudava na perícia de controle de versão, mas talvez servisse para lembrar que é possível colocar qualquer coisa na configuração de identidade
Sugere adicionar aliases de identidade ao
.gitconfig, para executar comandos comogit config-companyougit config-personaldepois de inicializar ou clonar um repositórioExplica como gerenciar submódulos facilmente definindo o comando SSH no
~/.gitconfig, sem precisar modificar o~/.ssh/configApresenta como gerenciar configurações do Git por diretório usando
includeIfehasconfig:remote. Isso também é útil ao clonar repositóriosRecomenda fortemente que consultores usem um dispositivo separado para trabalho ou, no mínimo, um usuário de sistema operacional separado. Usar um dispositivo pessoal para trabalho pode ser arriscado
Explica como gerenciar configurações do Git usando NixOS e home-manager. Usa a condição
hasconfig:remotepara definir um e-mail específicoExplica como manter a complexidade do SSH em
~/.sshe incluir configurações separadas por cliente ou projeto. Quando não há nomes de host como GitHub, são atribuídos aliasesExplica como usar
gitdirpara separar trabalho e projetos pessoais.hasconfig:remoteé um divisor de águasExplica como separar repositórios de trabalho e pessoais em
~/deve~/src. Arquivos de configuração Git diferentes são incluídos conforme cada caminhoExplica como configurar arquivos
.gitconfigpessoais e de trabalho para usar e-mails e chaves de assinatura diferentes. A assinatura GPG é ativada para assinar commits