DEV Community

Priscila Oliveira
Priscila Oliveira

Posted on

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

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!

Top comments (0)