1
0
mirror of synced 2025-12-21 10:57:10 -05:00
Files
docs/content/account-and-profile/how-tos/account-management/managing-multiple-accounts.md

4.4 KiB

title, intro, versions, topics, shortTitle, redirect_from, contentType
title intro versions topics shortTitle redirect_from contentType
Managing multiple accounts If you use one workstation to contribute to projects for more than one account, you can modify your Git configuration to simplify the contribution process.
feature
multiple-accounts-one-workstation
Accounts
Git
GitHub
Manage multiple accounts
/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts
/account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts
how-tos

Contributing to multiple accounts using HTTPS and {% data variables.product.pat_generic %}s

Alternatively, if you want to use the HTTPS protocol for both accounts, you can use different {% data variables.product.pat_generic %}s for each account by configuring Git to store different credentials for each repository.

{% mac %}

{% data reusables.git.open-terminal %} {% data reusables.git.confirm-credential-manager %} {% data reusables.git.clear-the-stored-credentials %} {% data reusables.git.no-credential-manager %}

  • If the output is osxkeychain, you're using the macOS keychain. To clear the credentials, you can use the credential helper on the command line:

    $ git credential-osxkeychain erase
    host={% data variables.product.product_url %}
    protocol=https
    > [Press Return]
    >
    

{% data reusables.git.clear-stored-gcm-credentials %}

 ```shell copy
 echo "protocol=https\nhost=github.com" | git credential-manager erase
 ```

{% data reusables.git.cache-on-repository-path %} {% data reusables.accounts.create-personal-access-tokens %} {% data reusables.git.provide-credentials %}

{% endmac %}

{% windows %}

  1. Open Git Bash. {% data reusables.git.confirm-credential-manager %} {% data reusables.git.clear-the-stored-credentials %} {% data reusables.git.no-credential-manager %} {% data reusables.git.clear-stored-gcm-credentials %}

    echo "protocol=https`nhost=github.com" | git credential-manager erase
    
    • If the output is wincred, you're using the Windows Credential Manager. To clear the credentials, enter the following command.

      cmdkey /delete:LegacyGeneric:target=git:https://github.com
      

{% data reusables.git.cache-on-repository-path %} {% data reusables.accounts.create-personal-access-tokens %} {% data reusables.git.provide-credentials %}

{% endwindows %}

{% linux %}

{% data reusables.git.open-terminal %} {% data reusables.git.confirm-credential-manager %} {% data reusables.git.clear-the-stored-credentials %} {% data reusables.git.no-credential-manager %} {% data reusables.git.clear-stored-gcm-credentials %}

```shell copy
echo "protocol=https\nhost=github.com" | git credential-manager erase
```

{% data reusables.git.cache-on-repository-path %} {% data reusables.accounts.create-personal-access-tokens %} {% data reusables.git.provide-credentials %}

{% endlinux %}

Contributing to multiple accounts using SSH and GIT_SSH_COMMAND

If you want to use the SSH protocol for both accounts, you can use different SSH keys for each account. For more information about using SSH, see AUTOTITLE.

To use a different SSH key for different repositories that you clone to your workstation, you must write a shell wrapper function for Git operations. The function should perform the following steps.

  1. Determine the repository's full name with owner, using a command such as git config --get remote.origin.url.
  2. Choose the correct SSH key for authentication.
  3. Modify GIT_SSH_COMMAND accordingly. For more information about GIT_SSH_COMMAND, see Environment Variables in the Git documentation.

For example, the following command sets the GIT_SSH_COMMAND environment variable to specify an SSH command that uses the private key file at PATH/TO/KEY/FILE for authentication to clone the repository named OWNER/REPOSITORY on {% data variables.location.product_location %}.

GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY

Next steps

For reference information, see AUTOTITLE.