Git Remotes: Fun Commands You Can Use
Commands discussed in this section:
- git branch
- git remote
- git ls-remote
- git fetch
- git pull
List remote-tracking branches
$ git branch -r origin/HEAD -> origin/master origin/master origin/test qa/master qa/test
List all branches:
$ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/test
List only local, working branches:
$ git branch * master
Show basic information about the default remote
$ git remote -v origin file:///home/gitadmin/project1.git (fetch) origin file:///home/gitadmin/project1.git (push)
Show a lot about a remote
$ git remote show origin * remote origin Fetch URL: file:///home/gitadmin/project1.git Push URL: file:///home/gitadmin/project1.git HEAD branch: master Remote branches: master tracked test tracked Local branch configured for 'git pull': master merges with remote master Local ref configured for 'git push': master pushes to master (up to date)
Dig around remote repositories
Show the references in a remote repository and their hash:
$ git ls-remote origin 8dc59a3c60b5dd12605d0a647b4921b5410b820f HEAD 8dc59a3c60b5dd12605d0a647b4921b5410b820f refs/heads/master a402bc61da05d2c9dc6dc6307dcffe12a1fb8045 refs/heads/test $ git ls-remote git://git.debian.org/collab-maint/usplash.git ee17d863ceab06e408e8b051244b7202ae4075f7 HEAD ee17d863ceab06e408e8b051244b7202ae4075f7 refs/heads/master f0847d378161de510b49654746f551482240901f refs/heads/upstream 7f5b189dc1c67bb5ff33ca2d4f616336baa8fb4c refs/tags/0.5.19-1 ...
The first example, refers to a remote repository named origin and the second above specifies the completely URL of the remote repository.
Add a remote repository
$ git remote add qa git://qaserver/round1 $ git fetch qa From git://qaserver/round1 * [new branch] master -> qa/master * [new branch] test -> qa/test
Add a tracking branch
$ git branch --track test origin/test Branch test set up to track remote branch test from origin. $ git checkout test $ git pull ...