This is taken from here. http://stackoverflow.com/questions/67699/how-do-i-clone-all-remote-branches-with-git/72156#72156 Want this as a gist because I always come back to this posting.
First, clone a remote git repository and cd into it:
$ git clone git://example.com/myproject
$ cd myproject
Next, look at the local branches in your repository:
$ git branch
* main
But there are other branches hiding in your repository! You can see these using the -a
flag:
$ git branch -a
* main
origin/HEAD
origin/main
origin/v1.0-stable
origin/experimental
If you already have a existing repository but there is a new branch that is yet listed do a:
git fetch
If you just want to take a quick peek at an upstream branch, you can check it out directly:
$ git checkout origin/experimental
But if you want to work on that branch, you'll need to create a local tracking branch:
$ git checkout -b experimental origin/experimental
Now, if you look at your local branches, this is what you'll see:
$ git branch
main
* experimental
You can actually track more than one remote repository using git remote
.
$ git remote add win32 git://example.com/users/joe/myproject-win32-port
$ git branch -a
* main
origin/HEAD
origin/main
origin/v1.0-stable
origin/experimental
win32/main
win32/new-widgets
At this point, things are getting pretty crazy, so run gitk
to see what's going on:
$ gitk --all &
Thanks Fabian, Good Tutorial, really helped me with this of local and remote branches. Regards.