Pular para o conteúdo principal

Usar várias contas GitHub no Git

Quando há mais de uma conta GitHub salva no Git Credential Manager (GCM), o Git não sabe qual usar. Por isso ele abre a janela "Select an account" a cada push, pull ou clone.

Este guia mostra como resolver isso de duas formas, que podem ser usadas juntas:

  1. Conta padrão global: uma conta usada em todos os repositórios.
  2. Conta por repositório: uma conta diferente só nos repositórios que precisam dela.
Exemplo usado neste guia
  • ruseleredu é a conta padrão.
  • AdrianoRuseler é usada apenas em alguns repositórios.

Troque os nomes pelos das suas contas.

Pré-requisito: verificar as contas salvas​

Liste as contas que o GCM conhece para o GitHub:

git credential-manager github list

Saída esperada:

ruseleredu
AdrianoRuseler
dica

Se o comando não existir, atualize o Git for Windows. O GCM vem incluído nele.

Opção 1: definir uma conta padrão global​

Esta configuração diz ao GCM qual conta usar para qualquer repositório em https://github.com:

git config --global credential.https://github.com.username ruseleredu

Para conferir:

git config --global --get credential.https://github.com.username

A partir daí, a janela de seleção não aparece mais nos repositórios que não tenham uma configuração própria.

Opção 2: usar outra conta em um repositório específico​

Nos repositórios que pertencem à outra conta, sobrescreva o padrão localmente. Há duas maneiras de fazer isso.

Dentro da pasta do repositório:

git config credential.username AdrianoRuseler

A configuração fica salva em .git/config e vale apenas para esse repositório. Ela tem prioridade sobre a configuração global.

Para conferir:

git config --local --get credential.username

Ao clonar um repositório novo​

Você pode indicar a conta já no clone:

git clone -c credential.username=AdrianoRuseler https://github.com/dono/repositorio.git

Combinando as duas opções​

SituaçãoO que configurarConta usada
Repositório sem configuração localApenas a global (Opção 1)ruseleredu
Repositório com credential.username localLocal (Opção 2)AdrianoRuseler
Remote com usuário na URLURL do remote (Opção 2)AdrianoRuseler

A ordem de prioridade é: usuário na URL → configuração local → configuração global.

Alternativa: remover a conta que você não usa​

Se você só precisa de uma conta, basta remover a outra. Com uma única conta salva, o GCM não pergunta mais nada:

git credential-manager github logout AdrianoRuseler
aviso

Depois disso, qualquer repositório que dependa dessa conta vai pedir login novamente no próximo push ou pull.

Desfazer as configurações​

git config --global --unset credential.https://github.com.username

Solução de problemas​

A janela continua aparecendo
  • Confirme se o nome da conta está escrito exatamente como aparece em git credential-manager github list.

  • Verifique se não há outra configuração conflitante:

    git config --show-origin --get-all credential.username
    git config --show-origin --get-regexp "credential\..*username"
  • Confira se o remote usa HTTPS. Remotes SSH (git@github.com:...) não usam o GCM.

Erro de permissão (403) ao fazer push

O Git está usando uma conta sem acesso ao repositório. Verifique qual conta está configurada no repositório (Opção 2) e se ela tem permissão de escrita.