123qwe 123qwe - 1 year ago 167
Git Question

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".

Answer Source

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 "your_email@youremail.com"

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 git@github.com:activehacker/gfs.git gfs_jexchan

cd gfs_jexchan and modify git config

$ git config user.name "jexchan"
$ git config user.email "jexchan@gmail.com" 

$ git config user.name "activehacker"
$ git config user.email "jexlab@gmail.com" 

# or you can have global 
git config $ git config --global user.name "jexchan" 
git config --global user.email "jexchan@gmail.com"

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
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download