Thomas
Thomas

Reputation: 4719

TortoiseGit clone remote branch

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?

Upvotes: 8

Views: 59100

Answers (5)

metaforge
metaforge

Reputation: 911

(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.

Remote Update

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.

Upvotes: 9

Wendy William
Wendy William

Reputation: 305

Unfortunately, the current TortoiseGit (TortoiseGit 1.7.13.0) can not clone a specific branch. You may ask a feature request.

The workaround:

  1. Use a manual Git command, e.g.: git clone --recursive --branch 2.x-1.0
  2. Use another Git GUI, e.g. SmartGit

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.

Upvotes: 1

Martin Braun
Martin Braun

Reputation: 12579

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 replace tree with branches, so you get https://github.com/USERNAME/REPONAME/branches/BRANCHNAME.

This URL can be used to checkout the specific branch.

Upvotes: 0

Vishwajeet
Vishwajeet

Reputation: 321

It's available in Git clone window: enter image description here

Upvotes: 14

sbell
sbell

Reputation: 465

As stated by linquize, this functionality isn't directly provided by TortoiseGit. If you really want to use it though, you can:

  • Clone the repository that the branch belongs to (right-click menu -> Git Clone...). This will also checkout the working copy created by clone to HEAD

TortoiseGit clone window

  • Switch the working copy from HEAD to the desired branch/tag (right-click menu -> TortoiseGit -> Switch/Checkout)

TortoiseGit switch window

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.

Upvotes: 17

Related Questions