I am trying to come to terms with Git as I recently started using it (long time Subversion user) and I cannot find a way to clone a remote branch with TortoiseGit.
I have created a local branch which I pushed to GitHub, but when I try to clone (checkout) this remote branch I cannot find any way to do it.
How can I do it?
It's available in Git clone window:
(This is as of TortoiseGit v1.8.3.0.)
Do a "Git -> Git Sync" first in the TortoiseGit context menu. (Note: you may have to hold Shift down as you right click, depending on how you have Git Sync set to show up in your context menu.)
There will be a button in there at the bottom left called "Remote Update". Do that, and it will pull down all of the new remote branches that are not present in your local repository.
After that, you should be able to do "Git -> Git Checkout" as normal, and the branch you want will show up in the list.
I should note that this same procedure can be used to inform TortoiseGit about new branches that have been created in the remote repository, whether you originally created them or not.
Unfortunately, the current TortoiseGit (TortoiseGit 1.7.13.0) can not clone a specific branch. You may ask a feature request.
The workaround:
git clone --recursive --branch 2.x-1.0
Another way is to clone all branches then delete unwanted branches, but even this is not a good solution especially if you have many branches with many tags (and different file-names), but this is the workaround so far until TortoiseGit provides it. I choose to clone a branch manually using the command line. This question only happened for Windows users because the Git version of Linux already provides the
--branch
options.Update regarding this:
If you only need a specific branch, you can SVN checkout it directly, nowadays. Copy the tree URL of the branch, i.e.
https://github.com/USERNAME/REPONAME/tree/BRANCHNAME
and replacetree
withbranches
, so you gethttps://github.com/USERNAME/REPONAME/branches/BRANCHNAME
.This URL can be used to checkout the specific branch.
As stated by linquize, this functionality isn't directly provided by TortoiseGit. If you really want to use it though, you can:
This will take a bit longer than from the command line, because the initial clone command implies a checkout to head, which you then have to switch back to the branch/tag you want.