The git remote set-url command changes an existing remote repository URL.

Tip: For information on the difference between HTTPS and SSH URLs, see "Which remote URL should I use?"

The git remote set-url command takes two arguments:

  • An existing remote name, for example, origin
  • A new URL for the remote, for example:
    • https://[hostname]/USERNAME/REPOSITORY_2.git if you're updating to use HTTPS
    • git@[hostname]:USER/REPOSITORY_2.git if you're updating to use SSH

Switching remote URLs from SSH to HTTPS

  1. Open Terminal (for Mac and Linux users) or the command line (for Windows users).
  2. Change the current working directory to your local project.
  3. List your existing remotes in order to get the name of the remote you want to change.

    git remote -v
    # origin  git@hostname:USERNAME/REPOSITORY.git (fetch)
    # origin  git@hostname:USERNAME/REPOSITORY.git (push)
    
  4. Change your remote's URL from SSH to HTTPS with the remote set-url command.

    git remote set-url origin https://hostname/USERNAME/REPOSITORY_2.git
    
  5. Verify that the remote URL has changed.

    git remote -v
    # Verify new remote URL
    # origin  https://hostname/USERNAME/REPOSITORY2.git (fetch)
    # origin  https://hostname/USERNAME/REPOSITORY2.git (push)
    

The next time you git fetch, git pull, or git push to the remote repository, you'll be asked for your GitHub username and password.

Switching remote URLs from HTTPS to SSH

  1. Open Terminal (for Mac and Linux users) or the command line (for Windows users).
  2. Change the current working directory to your local project.
  3. List your existing remotes in order to get the name of the remote you want to change.

    git remote -v
    # origin  https://hostname/USERNAME/REPOSITORY.git (fetch)
    # origin  https://hostname/USERNAME/REPOSITORY.git (push)
    
  4. Change your remote's URL from HTTPS to SSH with the remote set-url command.

    git remote set-url origin git@hostname:USERNAME/REPOSITORY2.git
    
  5. Verify that the remote URL has changed.

    git remote -v
    # Verify new remote URL
    # origin  git@hostname:USERNAME/REPOSITORY2.git (fetch)
    # origin  git@hostname:USERNAME/REPOSITORY2.git (push)
    

Troubleshooting

You may encounter these errors when trying to changing a remote.

No such remote '[name]'

This error means that the remote you tried to change doesn't exist:

git remote set-url sofake https://hostname/octocat/Spoon-Knife
# fatal: No such remote 'sofake'

Check that you've correctly typed the remote name.

Further reading