Trying to work on both my actual "work" repos, and my repos on git hub, from my computer.
The work account was set up first, and everything works flawlessly.
My account, however, cannot seem to push to my repo, which is set up under a different account/email.
I've tried copying my work key up to my account, but that throws an error because of course a key can be only attached to one account.
How can I push/pull to and from both accounts from their respective GitHub credentials?
Go to Settings . From the left side navigation, click SSH and GPG keys . Click on New SSH key , name it (it's a good idea to name it after the computer you're using it in), and paste the key you previously copied. Click Add key .
All you need to do is configure your SSH setup with multiple SSH keypairs.
This link is easy to follow (Thanks Eric): http://code.tutsplus.com/tutorials/quick-tip-how-to-work-with-github-and-multiple-accounts--net-22574
Generating SSH keys (Win/msysgit) https://help.github.com/articles/generating-an-ssh-key/
Relevant steps from the first link:
ssh-keygen -t ed25519 -C "[email protected]"
, follow the prompts and decide a name, e.g. id_ed25519_doe_company
.~/.ssh/id_ed25519_doe_company.pub
and tell ssh about the key: ssh-add ~/.ssh/id_ed25519_doe_company
.config
file in ~/.ssh
with the following contents: Host github-doe-company HostName github.com User git IdentityFile ~/.ssh/id_ed25519_doe_company
git remote add origin git@github-doe-company:username/repo.git
or change using git remote set-url origin git@github-doe-company:username/repo.git
Also, if you're working with multiple repositories using different personas, you need to make sure that your individual repositories have the user settings overridden accordingly:
Setting user name, email and GitHub token – Overriding settings for individual repos https://help.github.com/articles/setting-your-commit-email-address-in-git/
Hope this helps.
Note: Some of you may require different emails to be used for different repositories, from git 2.13 you can set the email on a directory basis by editing the global config file found at: ~/.gitconfig
using conditionals like so:
[user] name = Pavan Kataria email = [email protected] [includeIf "gitdir:~/work/"] path = ~/work/.gitconfig
And then your work specific config ~/work/.gitconfig would look like this:
[user] email = [email protected]
Thank you @alexg for informing me of this in the comments.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With