Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do i switch between different users(github accounts) when pushing repositories?

Tags:

git

github

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

like image 942
123qwe Avatar asked Mar 04 '16 13:03

123qwe


People also ask

How do I push code to another account in GitHub?

Using the command lineGo into the directory for your project. Add a connection to your friend's version of the github repository, if you haven't already. Pull his/her changes. Push them back to your github repository.


1 Answers

You will need to use different ssh keys.

Read this full documents and follow the steps.

Multiple SSH Keys settings for different github account:

https://gist.github.com/jexchan/2351996


create different public key

create different ssh key according the article Mac Set-Up Git

$ ssh-keygen -t rsa -C "[email protected]"

for example, 2 keys created at:

~/.ssh/id_rsa_activehacker
~/.ssh/id_rsa_jexchan

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 protected]:activehacker/gfs.git gfs_jexchan

cd gfs_jexchan and modify git config

$ git config user.name "jexchan"
$ git config user.email "[email protected]" 

$ git config user.name "activehacker"
$ git config user.email "[email protected]" 

# or you can have global 
git config $ git config --global user.name "jexchan" 
git config --global user.email "[email protected]"

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
like image 109
CodeWizard Avatar answered Sep 20 '22 19:09

CodeWizard