我正试图与Git达成协议,因为我最近开始使用它(长时间的Subversion用户),我找不到用TortoiseGit克隆远程分支的方法。
我已经创建了一个本地分支,我将其推送到GitHub,但是当我尝试克隆(checkout)这个远程分支时,我找不到任何方法来执行它。
我该怎么做?
正如linquize所述,TortoiseGit并未直接提供此功能。如果你真的想要使用它,你可以:
这将比命令行花费更长的时间,因为初始克隆命令意味着结账,然后你必须切换回你想要的分支/标签。
(这是TortoiseGit v1.8.3.0的。)
首先在TortoiseGit上下文菜单中执行“Git - > Git Sync”。 (注意:您可能必须在右键单击时按住Shift键,具体取决于您将Git Sync设置为在上下文菜单中显示的方式。)
左下角会有一个名为“远程更新”的按钮。这样做,它将删除本地存储库中不存在的所有新远程分支。
之后,您应该可以正常执行“Git - > Git Checkout”,您想要的分支将显示在列表中。
我应该注意,这个相同的过程可以用来告知TortoiseGit有关在远程存储库中创建的新分支,无论您是否最初创建它们。
不幸的是,目前的TortoiseGit(TortoiseGit 1.7.13.0)无法克隆特定的分支。您可以询问功能请求。
解决方法:
git clone --recursive --branch 2.x-1.0
另一种方法是克隆所有分支然后删除不需要的分支,但即使这不是一个好的解决方案,特别是如果你有许多分支与许多标签(和不同的文件名),但这是迄今为止的解决方法,直到TortoiseGit提供它。我选择使用命令行手动克隆分支。这个问题只发生在Windows用户身上,因为Linux的Git版本已经提供了--branch
选项。
关于此的更新:
如果你只需要一个特定的分支,你可以直接在SVN结账,如今。复制分支的树URL,即https://github.com/USERNAME/REPONAME/tree/BRANCHNAME
并用tree
替换branches
,这样你就得到了https://github.com/USERNAME/REPONAME/branches/BRANCHNAME
。
此URL可用于签出特定分支。