Provavelmente muitas pessoas já passaram por esta situação de ter que trabalhar com múltiplas contas do Github, e por conta disso terem que utilizar chaves diferentes….
Algumas soluções, pelo que pude pesquisar, eram de deixar a configuração do ssh config parecida e só trocar chave via ssh agent, outros inclusive alternando via shell o arquivo de configuração do ssh config, e várias outras façanhas para automatizar isso…
Bom, pesquisando e pesquisando … encontrei esta solução, que com base na própria documentação do Git, permite você trabalhar com as suas duas contas, e com chaves distintas, ao mesmo tempo 💥
E sem mais delongas, é simples:
Criaremos arquivos de inclusão, onde através do seu .gitconfig, iremos referenciar cada um deles, ficando assim:
Nome do arquivo: .gitconfig-<nomedousuario>.inc, com o seguinte conteúdo abaixo…
[core]
SshCommand = "ssh -i ~/.ssh/id_rsa"
[user]
name = <usuário>
email = <email do usuário>
Crie um arquivo igual a este para cada conta, com suas respectivas chaves e deixe no mesmo diretório do próprio .gitconfig
Agora no próprio .gitconfig, iremos referenciar estes dois arquivos, conforme abaixo:
...
...
[includeIf "gitdir:/work/git/"]
path = .gitconfig-<nomedousuario>.inc
[includeIf "gitdir:/pessoal/git/"]
path = .gitconfig-<nomedousuario>.inc
...
...
onde através desta inclusão condicional, o dado é repassado para o gitdir, dando match nos dados de diretório dos seus repositórios ✨
Agora inicialize outro terminal, você verá que acessando cada repositório relacionado a estas referências, será possível fazer pull/push sem precisar mexer em mais nenhuma configuração 😆
cya! 🎶🎶🎶
| Todas Tags |
| Cheats |
16
|
| DevOps |
15
|
| MacOS |
7
|
| Shell |
6
|
| Continuous Learning |
5
|
| Automation |
4
|
| Git |
4
|
| Azure |
3
|
| Managed Services |
3
|
| Pensamentos |
3
|
| PowerShell |
3
|
| AppleScript |
2
|
| Aws |
2
|
| ITIL |
2
|
| Microservices |
2
|
| PlatformEngineer |
2
|
| SRE |
2
|
| Webserver |
2
|
| Ansible |
1
|
| Apple |
1
|
| Billing |
1
|
| Brokerage |
1
|
| Cloud Computing |
1
|
| CloudOps |
1
|
| Containers |
1
|
| Continuos Learning |
1
|
| DevSecOps |
1
|
| Docker |
1
|
| Engineering |
1
|
| Github |
1
|
| Gitlab |
1
|
| Google Script |
1
|
| Hugo |
1
|
| Internet |
1
|
| Kubernetes |
1
|
|
1
|
| Markdown |
1
|
| Nginx |
1
|
| Observabilidade |
1
|
| OpenSSL |
1
|
| Proxy Pass |
1
|
| Serverless |
1
|
| Sysadmin |
1
|
| Terraform |
1
|