如何从远程Git存储库克隆特定分支
时间:2020-01-09 10:34:22 来源:igfitidea点击:
说明
在本快速教程中,将向我们展示如何从远程Git存储库克隆特定分支。从远程存储库克隆分支后,默认情况下将拉动master分支。虽然对于大多数用例来说,这可能是理想的,但有时我们一开始只想要一个特定的分支。
从远程仓库中克隆时,Git允许我们使用-b标志来指定分支名称。
克隆特定的远程分支
在以下示例中,我们将克隆官方WordPress存储库。 WordPress为每个版本创建一个分支,如果我们仅对5.2版本感兴趣,我们可以拉下该分支而不是master。
git clone -b 5.2-branch https://github.com/WordPress/WordPress.git
如以下示例输出所示,该命令的输出与未指定分支的情况相同。
Cloning into 'WordPress'… remote: Enumerating objects: 82, done. remote: Counting objects: 100% (82/82), done. remote: Compressing objects: 100% (62/62), done. remote: Total 297255 (delta 56), reused 43 (delta 20), pack-reused 297173 Receiving objects: 100% (297255/297255), 184.84 MiB | 1.68 MiB/s, done. Resolving deltas: 100% (238351/238351), done. Checking connectivity… done. Checking out files: 100% (2156/2156), done.
当然,唯一的例外是master分支尚未与5.2分支分支一起被下拉。我们可以通过运行git branch命令来验证这一点。
git branch
* 5.2-branch
仅克隆单个分支历史记录
当单独使用-b标志时,我们将下拉存储库的整个历史记录,包括有关其他分支的详细信息。如果只希望克隆分支的历史记录,则可以使用单分支标志。
在持续集成(CI)管道中,使用单分支标志非常有用,因为我们只关心正在构建的分支的历史记录。我们不会浪费不必要的空间来污染构建服务器,在处理历史悠久的大型项目时,这一点很重要。
git clone -b 5.2-branch --single-branch https://github.com/WordPress/WordPress.git
让我们将此命令的输出与上面的输出进行比较。
Cloning into 'WordPress-Single'… remote: Enumerating objects: 55, done. remote: Counting objects: 100% (55/55), done. remote: Compressing objects: 100% (41/41), done. remote: Total 269795 (delta 33), reused 29 (delta 14), pack-reused 269740 Receiving objects: 100% (269795/269795), 157.62 MiB | 1.86 MiB/s, done. Resolving deltas: 100% (216860/216860), done. Checking connectivity… done. Checking out files: 34% (734/2156) Checking out files: 35% (755/2156) Checking out files: 100% (2156/2156), done.
立即我们应该注意到枚举对象的数量要少得多,我们也可以通过查看对象大小差异来确认这一点。
我们所做的第一个克隆(不使用单分支标志)的对象大小为184 MiB,而第二个克隆的对象大小为157 MiB。