Working with Remotes
Syntax#
git remote [-v | --verbose]git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>git remote rename <old> <new>git remote remove <name>git remote set-head <name> (-a | --auto | -d | --delete | <branch>)git remote set-branches [--add] <name> <branch>…git remote get-url [--push] [--all] <name>git remote set-url [--push] <name> <newurl> [<oldurl>]git remote set-url --add [--push] <name> <newurl>git remote set-url --delete [--push] <name> <url>git remote [-v | --verbose] show [-n] <name>…git remote prune [-n | --dry-run] <name>…git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…]
Adding a New Remote Repository
git remote add upstream git-repository-urlAdds remote git repository represented by git-repository-url as new remote named upstream to the git repository
Updating from Upstream Repository
Assuming you set the upstream (as in the “setting an upstream repository”)
git fetch remote-name
git merge remote-name/branch-nameThe pull command combines a fetch and a merge.
git pullThe pull with --rebase flag command combines a fetch and a rebase instead of merge.
git pull --rebase remote-name branch-namels-remote
Deleting a Remote Branch
Removing Local Copies of Deleted Remote Branches
Show information about a Specific Remote
Output some information about a known remote: origin
git remote show originPrint just the remote’s URL:
git config --get remote.origin.urlWith 2.7+, it is also possible to do, which is arguably better than the above one that uses the config command.
git remote get-url originList Existing Remotes
List all the existing remotes associated with this repository:
git remoteList all the existing remotes associated with this repository in detail including the fetch and push URLs:
git remote --verboseor simply
git remote -vGetting Started
Set Upstream on a New Branch
Changing a Remote Repository
To change the URL of the repository you want your remote to point to, you can use the set-url option, like so:
git remote set-url <remote_name> <remote_repository_url>Example:
git remote set-url heroku https://git.heroku.com/fictional-remote-repository.gitChanging Git Remote URL
Check existing remote
git remote -v
# origin https://github.com/username/repo.git (fetch)
# origin https://github.com/usernam/repo.git (push)Changing repository URL
git remote set-url origin https://github.com/username/repo2.git
# Change the 'origin' remote's URLVerify new remote URL
git remote -v
# origin https://github.com/username/repo2.git (fetch)
# origin https://github.com/username/repo2.git (push)Renaming a Remote
To rename remote, use command git remote rename
The git remote rename command takes two arguments:
- An existing remote name, for example : origin
- A new name for the remote, for example : destination
Get existing remote name
git remote
# originCheck existing remote with URL
git remote -v
# origin https://github.com/username/repo.git (fetch)
# origin https://github.com/usernam/repo.git (push)Rename remote
git remote rename origin destination
# Change remote name from 'origin' to 'destination'Verify new name
git remote -v
# destination https://github.com/username/repo.git (fetch)
# destination https://github.com/usernam/repo.git (push)=== Posible Errors ===
-
Could not rename config section ‘remote.[old name]’ to ‘remote.[new name]’
This error means that the remote you tried the old remote name (origin) doesn’t exist.
-
Remote [new name] already exists.
Error message is self explanatory.
Set the URL for a Specific Remote
You can change the url of an existing remote by the command
git remote set-url remote-name url Get the URL for a Specific Remote
You can obtain the url for an existing remote by using the command
git remote get-url <name>
By default, this will be
git remote get-url origin