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.

  • What does git “added by us” mean?
  • Github Comparison View for 2 branches is incorrect?
  • Avoid git-ftp upload if files already on server
  • git in Android studio is different from TortoiseGit
  • How can I get rid of “Lost heads”?
  • Git tags are showing even though I deleted them
  • 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″.

  • How to change the git directory delimiter?
  • Git tags don't show up as GitHub releases
  • git single developer w/multiple machines - rebase and commits showing up twice
  • Git Post-receive hook with part of work tree
  • In Git, is there a way to get the “friendly” name for an arbitrary commit?
  • files that have not been changed show up in unstaged list after git stash
  • 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:

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

    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 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
    
    Git Baby is a git and github fan, let's start git clone.