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
|
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
|
Github |
1
|
Gitlab |
1
|
Google Script |
1
|
Hugo |
1
|
Internet |
1
|
Kubernetes |
1
|
1
|
Markdown |
1
|
Nginx |
1
|
Observabilidade |
1
|
OpenSSL |
1
|
PlatoformEngineer |
1
|
Proxy Pass |
1
|
Serverless |
1
|
Sysadmin |
1
|
Terraform |
1
|