Git clone will behave copying remote current working branch into local.
Is there any way to clone a specific branch by myself without switching branches on the remote repository?
This question is related to
git
git-branch
git-clone
Here is a really simple way to do it :)
Clone the repository
git clone <repository_url>
List all branches
git branch -a
Checkout the branch that you want
git checkout <name_of_branch>
To clone a branch without fetching other branches:
mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH
Create a branch on the local system with that name. e.g. say you want to get the branch named branch-05142011
git branch branch-05142011 origin/branch-05142011
It'll give you a message:
$ git checkout --track origin/branch-05142011
Branch branch-05142011 set up to track remote branch refs/remotes/origin/branch-05142011.
Switched to a new branch "branch-05142011"
Now just checkout the branch like below and you have the code
git checkout branch-05142011
git clone -b <branch> <remote_repo>
Example:
git clone -b my-branch [email protected]:user/myproject.git
With Git 1.7.10 and later, add --single-branch
to prevent fetching of all branches. Example, with OpenCV 2.4 branch:
git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
git --branch <branchname> <url>
But bash completion don't get this key: --branch
git checkout -b <branch-name> <origin/branch_name>
for example in my case:
git branch -a
* master
origin/HEAD
origin/enum-account-number
origin/master
origin/rel_table_play
origin/sugarfield_customer_number_show_c
So to create a new branch based on my enum-account-number branch I do:
git checkout -b enum-account-number origin/enum-account-number
After you hit return the following happens:
Branch enum-account-number set up to track remote branch refs/remotes/origin/enum-account-number.
Switched to a new branch "enum-account-number"
Source: Stackoverflow.com