我最近开始使用 Git(长期使用 Subversion 用户)时正在尝试与 Git 达成协议,但我找不到使用 TortoiseGit 克隆远程分支的方法。
我创建了一个推送到 GitHub 的本地分支,但是当我尝试克隆(签出)这个远程分支时,我找不到任何方法来做到这一点。
我该怎么做?
我最近开始使用 Git(长期使用 Subversion 用户)时正在尝试与 Git 达成协议,但我找不到使用 TortoiseGit 克隆远程分支的方法。
我创建了一个推送到 GitHub 的本地分支,但是当我尝试克隆(签出)这个远程分支时,我找不到任何方法来做到这一点。
我该怎么做?
正如 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 可用于签出特定分支。