How do i switch between different users(github accounts) when pushing repositories?
Here is the problem I run into.
First of all, I’m working on several different projects.
I’ve got two different github accounts, and after setting up one of them and successfully pushing a repo to it, I needed to commit/push the other repo to the second account which got me to the exact problem.
How do I switch between these two accounts using https way and not ssh?
P.S: I’m on Mac.
I’ve tried to change git config global/local user names and emails, but it didn’t work out. I keep getting the same error which is:
” remote: Permission to name/repo.git denied to User.
fatal: unable to access ‘repos address’ : The requested URL returned error: 403″.
One Solution collect form web for “How do i switch between different users(github accounts) when pushing repositories?”
You will need to use different ssh keys.
Read this full documents and follow the steps.
Multiple SSH Keys settings for different github account:
create different public key
create different ssh key according the article Mac Set-Up Git
$ ssh-keygen -t rsa -C "firstname.lastname@example.org"
for example, 2 keys created at:
Add these two keys to the ssh-agent:
$ ssh-add ~/.ssh/id_rsa_activehacker $ ssh-add ~/.ssh/id_rsa_jexchan you can delete all cached keys before $ ssh-add -D
check your keys
$ ssh-add -l
Modify the ssh config
$ cd ~/.ssh/ $ touch config $ subl -a config
Add the keys to the config file:***
#activehacker account Host github.com-activehacker HostName github.com User git IdentityFile ~/.ssh/id_rsa_activehacker #jexchan account Host github.com-jexchan HostName github.com User git IdentityFile ~/.ssh/id_rsa_jexchan
Clone you repo and modify your Git config
# clone your repo git clone email@example.com:activehacker/gfs.git gfs_jexchan cd gfs_jexchan and modify git config $ git config user.name "jexchan" $ git config user.email "firstname.lastname@example.org" $ git config user.name "activehacker" $ git config user.email "email@example.com" # or you can have global git config $ git config --global user.name "jexchan" git config --global user.email "firstname.lastname@example.org"
push your code
# add the code and commit it git add . git commit -m "your comments" # push the code to the remote server git push