
How to Manage Multiple GitHub Accounts on Windows in 2026
Developers frequently need to manage multiple GitHub accounts on Windows—a personal account for open-source contributions and a work account for employer repositories. Windows makes this trickier than macOS or Linux because of how the Windows Credential Manager stores GitHub credentials. Once you log into one account, it caches the credentials and uses them for every Git operation, making switching between accounts frustrating.
This guide covers every solution: SSH keys, Git credential helpers, HTTPS tokens, browser-based approaches, and cloud browser sessions for complete account isolation.
Why Managing Multiple GitHub Accounts on Windows Is Tricky
The root cause of the multi-account problem on Windows is the Windows Credential Manager. When you authenticate with GitHub via HTTPS (the default for most users), Windows stores your credentials and automatically uses them for all future Git operations—regardless of which GitHub account you intend to use.
This means:
- Pushing to a work repo may use your personal account credentials (and fail)
- Cloning a private personal repo may use your work credentials
- You get confusing “permission denied” errors when the wrong credentials are used
Method 1: SSH Keys (Recommended)
The most reliable solution for managing multiple GitHub accounts on Windows is using separate SSH keys for each account.
Step 1: Generate SSH Keys
Open Git Bash (installed with Git for Windows) and generate a key for each account:
# For personal account ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519_personal # For work account ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519_work
Step 2: Add Keys to GitHub
- Copy each public key:
cat ~/.ssh/id_ed25519_personal.pub - Go to GitHub → Settings → SSH and GPG keys → New SSH key
- Paste the personal key in your personal account
- Repeat with the work key in your work account
Step 3: Configure SSH Config File
Create or edit ~/.ssh/config:
# Personal GitHub account
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
# Work GitHub account
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
Step 4: Clone Repos Using the Custom Hosts
# Clone personal repo git clone git@github-personal:username/personal-repo.git # Clone work repo git clone git@github-work:company/work-repo.git
Step 5: Set Per-Repo Git Config
In each repo, set the correct user identity:
# In personal repos git config user.name "Personal Name" git config user.email "[email protected]" # In work repos git config user.name "Work Name" git config user.email "[email protected]"
Method 2: Git Credential Manager with Multiple Accounts
Git Credential Manager (GCM), which ships with Git for Windows, can handle multiple HTTPS accounts with some configuration:
Option A: Clear and Re-Authenticate
The simplest (but least convenient) approach:
- Open Windows Credential Manager (search “Credential Manager” in Start)
- Under “Windows Credentials,” find entries for
git:https://github.com - Remove the stored credential
- Next Git operation will prompt you to authenticate fresh
Option B: Use GCM’s Namespace Feature
GCM supports storing credentials per-repo or per-remote using custom namespaces:
# In your work repo git config credential.https://github.com.username "work-username"
This tells GCM to use a different credential namespace for this specific repo.
Method 3: Personal Access Tokens (PATs)
Create separate Personal Access Tokens for each GitHub account and use them as passwords in HTTPS authentication:
- In each GitHub account, go to Settings → Developer settings → Personal access tokens → Fine-grained tokens
- Generate a token with appropriate permissions
- Use the token as the password when Git prompts for credentials
- Store tokens securely in a password manager
Method 4: Conditional Git Config (Best for Directory-Based Separation)
Git supports conditional includes in .gitconfig, allowing you to automatically apply different configurations based on the repository’s directory:
# ~/.gitconfig
[user]
name = Personal Name
email = [email protected]
[includeIf "gitdir:C:/Projects/Work/"]
path = ~/.gitconfig-work
# ~/.gitconfig-work
[user]
name = Work Name
email = [email protected]
Now any repo under C:/Projects/Work/ automatically uses your work identity, and everything else uses your personal identity.
Method 5: Browser-Based GitHub Management
For activities that happen in the browser (pull request reviews, issue management, project boards, GitHub Actions monitoring), you need separate browser sessions for each GitHub account.
Chrome Profiles
Create a Chrome profile for each GitHub account. Each profile stays logged into its respective GitHub account, and you switch by clicking the profile icon.
Cloud Browser Sessions
For teams that share access to organizational GitHub accounts—or for users who need complete separation between work and personal GitHub identities—Send.win cloud browser sessions provide fully isolated environments. Each session has its own cookies, fingerprint, and login state.
This is especially useful for:
- Open-source maintainers who keep their personal identity separate from their employer’s
- Contractors accessing multiple clients’ GitHub organizations
- Security researchers using separate identities for responsible disclosure
Learn about how multi-login profiles create clean parallel sessions for managing different accounts simultaneously.
Comparison of All Methods
| Method | Best For | Complexity | Browser Support | CLI Support |
|---|---|---|---|---|
| SSH Keys | Daily development workflow | Medium | ❌ | ✅ Excellent |
| GCM Namespaces | HTTPS preference users | Medium | ❌ | ✅ Good |
| PATs | Automation and CI/CD | Easy | ❌ | ✅ Good |
| Conditional Config | Directory-based separation | Easy | ❌ | ✅ Automatic |
| Chrome Profiles | Browser-based GitHub work | Easy | ✅ | ❌ |
| Cloud Browser | Full isolation + team access | Easy | ✅ Isolated | ❌ |
Best Practice: The Complete Setup
For most developers managing two GitHub accounts (personal + work) on Windows, here’s the recommended complete setup:
- SSH keys for all Git CLI operations (push, pull, clone)
- Conditional Git config for automatic identity switching based on directory
- Chrome profiles or cloud browser sessions for browser-based GitHub activities
- GPG keys (optional) for signed commits on each account
Troubleshooting Common Issues
“Permission denied (publickey)” Error
This usually means the SSH agent doesn’t have the correct key loaded:
# Start the SSH agent eval "$(ssh-agent -s)" # Add the correct key ssh-add ~/.ssh/id_ed25519_personal
Wrong Account Used for Push
Check which remote URL your repo is using:
git remote -v
If it shows https://github.com/..., switch to the SSH host alias:
git remote set-url origin git@github-personal:username/repo.git
Commits Showing Wrong Author
Check your local config:
git config user.name git config user.email
If wrong, set the correct values for this repo specifically (without --global).
Frequently Asked Questions
Can I be logged into two GitHub accounts at the same time?
In a single browser, no—GitHub uses session cookies that tie to one account. Use Chrome profiles or cloud browser sessions to be logged into multiple accounts simultaneously.
Does GitHub allow multiple accounts?
Yes, GitHub’s terms allow individuals to have multiple accounts. However, free accounts have some limitations on private repos and Actions minutes.
How do I use GitHub Desktop with multiple accounts?
GitHub Desktop supports one account at a time. You can switch accounts via File → Options → Accounts → Sign out → Sign in with different account. For simultaneous access, use the CLI with SSH keys.
Will my contributions show on the correct GitHub account?
Contributions are attributed based on the email address in your Git commits. Ensure each repo has the correct user.email set (matching the email verified on the target GitHub account). Learn about session isolation for keeping multiple accounts separate.
How Send.win Helps You Master Manage Multiple Github Accounts Windows
Send.win makes Manage Multiple Github Accounts Windows simple and secure with powerful browser isolation technology:
- Browser Isolation – Every tab runs in a sandboxed environment
- Cloud Sync – Access your sessions from any device
- Multi-Account Management – Manage unlimited accounts safely
- No Installation Required – Works instantly in your browser
- Affordable Pricing – Enterprise features without enterprise costs
Try Send.win Free – No Credit Card Required
Experience the power of browser isolation with our free demo:
- Instant Access – Start testing in seconds
- Full Features – Try all capabilities
- Secure – Bank-level encryption
- Cross-Platform – Works on desktop, mobile, tablet
- 14-Day Money-Back Guarantee
Ready to upgrade? View pricing plans starting at just $9/month.
