Git:克隆指定分支
最后更新
默认情况下,git clone 会检出仓库的默认分支(通常是 main),但会下载所有分支。要从另一个分支开始,加上 -b <branch>。如果只想获取这个分支、跳过其他分支(对大型仓库或 CI 很方便),再加上 --single-branch。
在终端在线编辑器中试试这些命令:浏览器里就有一个真正的 shell,无需安装任何东西。
语法
| 命令 | 作用 |
|---|---|
git clone -b dev <url> | 克隆并检出 dev 分支 |
git clone -b dev --single-branch <url> | 只克隆 dev 分支的历史 |
先 git clone <url>,再 git switch dev | 克隆全部内容,然后切换 |
该用哪种方法
| 目标 | 命令 |
|---|---|
| 从某个分支开始,保留所有分支 | git clone -b dev <url> |
| 始终只需要一个分支 | git clone -b dev --single-branch <url> |
| 已经克隆过,想要另一个分支 | 先 git fetch,再 git switch dev |
Git 克隆指定分支常见问题
如何在 Git 中克隆指定分支?
运行
git clone -b <branch> <url>(或使用完整写法 --branch)。Git 会克隆仓库,并检出你指定的分支而不是默认分支。除非你同时加上 --single-branch,否则其他分支仍然会被下载。如何只克隆一个分支,其他什么都不要?
把两个选项组合起来:
git clone -b <branch> --single-branch <url>。这只会获取指定分支的历史,跳过其他所有分支,克隆得更小、更快,适合大型仓库或只需要一个分支的 CI 流水线。只克隆单个分支后,还能切换到其他分支吗?
不能直接切换,因为其他分支没有被获取下来。先让 Git 获取它们:运行
git remote set-branches origin '*',再运行 git fetch,之后就可以用 git switch 切换到任意分支了。如果你预计会用到多个分支,那就直接正常克隆。这和先克隆再切换有什么区别?
普通的
git clone <url> 加上 git switch <branch>,会先拿到所有分支,再切换到你想要的那个,日常使用完全没问题。git clone -b 会让你一开始就在那个分支上,配合 --single-branch 还能避免下载其余分支。可以在线练习吗?
可以。打开终端在线编辑器,就能在浏览器里真正的 shell 中运行
git clone,无需安装任何东西。Coddy 免费的互动式 Git 课程也会一步步讲解如何获取仓库。