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.

  • Option to push disabled in Visual Studio Code
  • Git for Perforce users
  • How to use only the default git port with gitorious.org
  • git rebase basics
  • Git merge submodule into parent tree cleanly and preserving commit history
  • Is there any way to clone a git repository without a specific directory?
  • 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″.

  • fatal: bad object HEAD
  • git diff shows ^M with color ui true
  • git pull error :error: remote ref is at but expected
  • Git Bash (1.9.0) using Windows Explorer intergration crashes folder explorer
  • what git function allows me to approve/deny each change a commit will make?
  • Replace the contents of one directory in GIT
  • 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.