Como trabalhar com várias contas do git em uma única máquina

Priscila Oliveira - May 27 - - Dev Community

Você já se encontrou em uma situação onde precisa ter mais de uma conta Git configurada na mesma máquina? Talvez você precise de uma conta pessoal e outra para a empresa.

Nesses casos, não é interessante ter um usuário global configurado na máquina, pois isso poderia acarretar no problema de fazer um commit com a conta errada para um projeto específico.

Antes de mais nada, vamos configurar duas chaves SSH, uma para cada perfil.

Criando a chave SSH

Abra o seu terminal e digite o seguinte comando:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Enter fullscreen mode Exit fullscreen mode

Isso cria uma nova chave SSH, usando o e-mail fornecido como rótulo.

> Generating public/private ALGORITHM key pair.
Enter fullscreen mode Exit fullscreen mode

Quando for solicitado a "Inserir um arquivo no qual salvar a chave", você pode pressionar Enter para aceitar o local padrão do arquivo.
Porém recomendo mudar o nome do arquivo pois teremos 2 chaves distintas.

> Enter a file in which to save the key (/Users/YOU/.ssh/id_rsa_nome_aqui): [Press enter]
Enter fullscreen mode Exit fullscreen mode

Depois de pressionar enter provavelmente aparcerá a frase a seguir:

> Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter fullscreen mode Exit fullscreen mode

Você pode optar por não usar uma senha para suas chaves SSH. Se preferir adicionar uma senha, digite-a e pressione Enter. Caso contrário, apenas pressione Enter sem digitar nada.

Repita o mesmo procedimento para a segunda chave.

Não se esqueça de adicionar cada chave à sua conta do GitHub ou outro serviço que você esteja utilizando.

Configurando a Chave para Repositórios Distintos

Vamos criar dois aliases para facilitar a configuração do Git.

O que é um "alias"?

Um alias é uma maneira de definir comandos personalizados para economizar tempo e digitar menos.

Abra seu terminal com o editor de sua preferência. Aqui, usaremos o Vim.

$ vim ~/.zshrc

Se você também usa o Vim, pressione "a" para entrar no modo de inserção e cole o seguinte:

# ALIAS CONFIG GIT
alias gcg="git config --edit --global"
alias gcl="git config --edit --local"
Enter fullscreen mode Exit fullscreen mode

Pressione Esc e digite:

:wq!

Agora, recarregue seu arquivo de configuração do seu terminal:

souce ~/.zshrc

Vá até o diretório do seu repositório e abra o terminal a partir dele. Digite:

$ gcl

Isso abrirá o arquivo .git/config do repositório no qual você está. Configure-o da seguinte forma:

[core]
        sshCommand = ssh -i ~/.ssh/sua-chave-ssh -F /dev/null
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[remote "origin"]
        url = git@github.com:seu-username/seu-repo
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
        remote = origin
        merge = refs/heads/main
[credential]
        username = Seu-username
[user]
        email = seuemail@teste.com
        name = Seu Nome

"~/seu-caminho/seu-repositorio/.git/config" 19L,
Enter fullscreen mode Exit fullscreen mode

Dentro [core] coloque:
sshCommand = ssh -i ~/.ssh/sua-chave-ssh -F /dev/null

Logo a baixo nas últimas linhas coloque:

[credential]
        username = Seu-username
[user]
        email = seuemail@teste.com
        name = Seu Nome
Enter fullscreen mode Exit fullscreen mode

Dessa forma, o repositório específico utilizará as credenciais configuradas.

Não se esqueça de recarregar o arquivo de configuração

source ~/.zshrc

Para atualizar o terminal.

Lembre-se de repetir esse processo para cada repositório em sua máquina.

Espero que isso tenha ajudado!

. . . . . . . . . .
Terabox Video Player