Sobre o gerenciamento de várias contas
Em alguns casos, talvez seja necessário usar várias contas no GitHub. Por exemplo, você pode ter uma conta pessoal para código aberto contribuições, e seu empregador também pode criar e gerenciar uma conta de usuário para você em uma empresa.
Não é possível usar um conta de usuário gerenciada para contribuir em projetos públicos no GitHub.com, portanto, é necessário contribuir com esses recursos usando sua conta pessoal. Para obter mais informações, confira "Sobre os Enterprise Managed Users" na documentação do GitHub Enterprise Cloud.
Se você precisa usar várias contas, pode permanecer conectado às suas contas e alternar entre elas. Por exemplo, alternar entre uma conta pessoal e uma conta de serviço. Para obter mais informações, confira "Como alternar entre contas".
Se você quiser usar uma estação de trabalho para contribuir com ambas as contas, poderá simplificar a contribuição com o Git usando uma combinação de protocolos para acessar dados do repositório ou usando credenciais por repositório.
Warning
Tenha cuidado ao usar uma estação de trabalho para contribuir com duas contas separadas. O gerenciamento de duas ou mais contas pode aumentar a chance de vazamento de código interno por engano para o público.
Se não for necessário que você use um conta de usuário gerenciada, o GitHub recomendará o uso de uma conta pessoal para todo o trabalho no GitHub.com. Com apenas uma conta pessoal, você pode contribuir para uma combinação de projetos pessoais, código aberto ou profissionais usando uma identidade. Outras pessoas podem convidar a conta para contribuir com repositórios individuais e repositórios pertencentes a uma organização, e a conta pode ser membro de várias organizações ou empresas.
Contribuindo para duas contas usando HTTPS e SSH
Se você contribuir com duas contas de uma estação de trabalho, poderá acessar repositórios usando um protocolo e credenciais diferentes para cada conta.
O Git pode usar o protocolo HTTPS ou SSH para acessar e atualizar dados nos repositórios em GitHub. O protocolo usado para clonar um repositório determina quais credenciais sua estação de trabalho usará para autenticar quando você acessar o repositório. Com essa abordagem de gerenciamento de conta, você armazena as credenciais de uma conta a ser usada para conexões HTTPS e carrega uma chave SSH para a outra conta a ser usada para conexões SSH.
Você pode encontrar os URLs HTTPS ou SSH para clonar um repositório na página do repositório. Para obter mais informações, confira "Clonar um repositório".
Para saber mais sobre o uso de SSH para acessar repositórios em GitHub, confira "Conectar-se ao GitHub com o SSH".
Contribuir com diversas contas usando HTTPS e o personal access tokens
Como alternativa, a fim de usar o protocolo HTTPS para ambas as contas, use personal access token diferentes para cada conta configurando o Git a fim de armazenar credenciais diferentes com relação a cada repositório.
-
Abra o terminal.
-
Para confirmar o uso de um gerenciador de credenciais, insira o comando a seguir e anote a saída.
Shell git config --get credential.helper
git config --get credential.helper
-
Se a saída confirmar que você está usando um gerenciador de credenciais, desmarque as credenciais armazenadas para o gerenciador de credenciais.
- Se a saída não incluir o nome de um gerenciador de credenciais, não haverá nenhum gerenciador de credenciais configurado e você poderá prosseguir para a próxima etapa.
-
Se a saída for
osxkeychain
, você estará usando o conjunto de chaves macOS. Para limpar as credenciais, você pode usar o auxiliar de credenciais na linha de comando:$ git credential-osxkeychain erase host=github.com protocol=https > [Press Return] >
-
Se a saída for
manager
(oumanager-core
nas versões anteriores) você está usando o Gerenciador de Credenciais do Git. Para limpar as credenciais, execute o comando a seguir.Shell echo "protocol=https\nhost=github.com" | git credential-manager erase
echo "protocol=https\nhost=github.com" | git credential-manager erase
-
-
Para configurar o Git a fim de armazenar credenciais em cache para a URL completa do repositório remoto de cada repositório que você acessar no GitHub, insira o comando a seguir.
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true
-
Para cada conta, crie um personal access token (classic) dedicado com o escopo
repo
. Ou, para cada uma das contas e para cada organização da qual você é membro, crie um fine-grained personal access token que possa acessar os repositórios desejados e que tenha permissões de leitura e gravação no conteúdo do repositório. Para obter mais informações, confira "Gerenciar seus tokens de acesso pessoal". -
Na primeira vez que você usar o Git para clonar um repositório ou acessar dados em um repositório que você já clonou, o Git solicitará credenciais. Forneça ao personal access token da conta acesso ao repositório.
O Git armazenará em cache o personal access token baseado na URL completa do repositório remoto, e você poderá acessar e gravar dados do repositório no GitHub.com usando a conta correta.
-
Abra o Git Bash.
-
Para confirmar o uso de um gerenciador de credenciais, insira o comando a seguir e anote a saída.
Shell git config --get credential.helper
git config --get credential.helper
-
Se a saída confirmar que você está usando um gerenciador de credenciais, desmarque as credenciais armazenadas para o gerenciador de credenciais.
-
Se a saída não incluir o nome de um gerenciador de credenciais, não haverá nenhum gerenciador de credenciais configurado e você poderá prosseguir para a próxima etapa.
-
Se a saída for
manager
(oumanager-core
nas versões anteriores) você está usando o Gerenciador de Credenciais do Git. Para limpar as credenciais, execute o comando a seguir.Shell echo "protocol=https`nhost=github.com" | git credential-manager erase
echo "protocol=https`nhost=github.com" | git credential-manager erase
-
Se a saída for
wincred
, você estará usando o Gerenciador de Credenciais do Windows. Para limpar as credenciais, insira o comando a seguir.Shell cmdkey /delete:LegacyGeneric:target=git:https://github.com
cmdkey /delete:LegacyGeneric:target=git:https://github.com
-
-
Para configurar o Git a fim de armazenar credenciais em cache para a URL completa do repositório remoto de cada repositório que você acessar no GitHub, insira o comando a seguir.
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true
-
Para cada conta, crie um personal access token (classic) dedicado com o escopo
repo
. Ou, para cada uma das contas e para cada organização da qual você é membro, crie um fine-grained personal access token que possa acessar os repositórios desejados e que tenha permissões de leitura e gravação no conteúdo do repositório. Para obter mais informações, confira "Gerenciar seus tokens de acesso pessoal". -
Na primeira vez que você usar o Git para clonar um repositório ou acessar dados em um repositório que você já clonou, o Git solicitará credenciais. Forneça ao personal access token da conta acesso ao repositório.
O Git armazenará em cache o personal access token baseado na URL completa do repositório remoto, e você poderá acessar e gravar dados do repositório no GitHub.com usando a conta correta.
-
Abra o terminal.
-
Para confirmar o uso de um gerenciador de credenciais, insira o comando a seguir e anote a saída.
Shell git config --get credential.helper
git config --get credential.helper
-
Se a saída confirmar que você está usando um gerenciador de credenciais, desmarque as credenciais armazenadas para o gerenciador de credenciais.
-
Se a saída não incluir o nome de um gerenciador de credenciais, não haverá nenhum gerenciador de credenciais configurado e você poderá prosseguir para a próxima etapa.
-
Se a saída for
manager
(oumanager-core
nas versões anteriores) você está usando o Gerenciador de Credenciais do Git. Para limpar as credenciais, execute o comando a seguir.Shell echo "protocol=https\nhost=github.com" | git credential-manager erase
echo "protocol=https\nhost=github.com" | git credential-manager erase
-
Para configurar o Git a fim de armazenar credenciais em cache para a URL completa do repositório remoto de cada repositório que você acessar no GitHub, insira o comando a seguir.
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true
-
Para cada conta, crie um personal access token (classic) dedicado com o escopo
repo
. Ou, para cada uma das contas e para cada organização da qual você é membro, crie um fine-grained personal access token que possa acessar os repositórios desejados e que tenha permissões de leitura e gravação no conteúdo do repositório. Para obter mais informações, confira "Gerenciar seus tokens de acesso pessoal". -
Na primeira vez que você usar o Git para clonar um repositório ou acessar dados em um repositório que você já clonou, o Git solicitará credenciais. Forneça ao personal access token da conta acesso ao repositório.
O Git armazenará em cache o personal access token baseado na URL completa do repositório remoto, e você poderá acessar e gravar dados do repositório no GitHub.com usando a conta correta.
Contribuindo para várias contas usando SSH e GIT_SSH_COMMAND
Se você quiser usar o protocolo SSH para ambas as contas, poderá usar chaves SSH diferentes em cada conta. Para saber mais sobre como usar o SSH, confira "Conectar-se ao GitHub com o SSH".
Para usar uma chave SSH diferente para repositórios diferentes que você clona em sua estação de trabalho, você deve escrever uma função de wrapper de shell para operações do Git. A função deve executar as etapas a seguir.
- Determine o nome completo do repositório com o proprietário, usando um comando como
git config --get remote.origin.url
. - Escolha a chave SSH correta para autenticação.
- Modifique
GIT_SSH_COMMAND
adequadamente. Para obter mais informações sobreGIT_SSH_COMMAND
, confira Variáveis de ambiente na documentação do Git.
Por exemplo, o comando a seguir define a variável de ambiente GIT_SSH_COMMAND
para especificar um comando SSH que usa o arquivo de chave privada em PATH/TO/KEY/FILE para autenticação a fim de clonar o repositório OWNER/REPOSITORY no GitHub.com.
GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY
GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY