Git Hub Clone All Branches At Once

I'm trying to clone an entire repository onto my machine using linux. I used

git clone <url>   

I then went into the folder where it was downloaded and typed

git branch 

in the terminal. It's only showing me master and not other branches which were in the remote repository. How do I clone all branches?

I know that for each branch in the remote I can separately use

git checkout -b <name of local branch> origin/<name of remote branch>

but is there any way other than that?


(1) Inside git local repostitory, create a new sh file

touch getAllBranches.sh
vi getAllBranches.sh

(2) Insert the below content to getAllBranches.sh file:

for branch in `git branch -a | grep remotes | grep -v HEAD | grep -v master `; do
   git branch --track ${branch#remotes/origin/} $branch
done

(3) Get all branches:

chmod +x getAllBranches.sh    
sh getAllBranches.sh

(4) Check result at local repository:

git branch

For example, I use repository: https://github.com/donhuvy/spring-boot

As you can see, I have fetched all branches to local machine:

enter image description here


This isn't too much complicated, very simple and straight forward steps are as follows:

After cloning the repo, run $ cd myproject

git branch -a This will show you all the remote branches.

$ git branch -a
* master
  remotes/origin/HEAD
  remotes/origin/master
  remotes/origin/v1.0-stable
  remotes/origin/experimental

If you want to work on remote branch, you'll need to create a local tracking branch:

$ git checkout -b experimental origin/experimental

Verify whether you are in the desired branch by the following command;

$ git branch

The output will like this;

*experimental
master
some branch2
some branch3 

Notice the * sign that denotes the current branch.


git clone --bare <repository url goes here> .git

Then after the repo is clone with all its branches then do the following

git config --bool core.bare false

git reset --hard