git clone

文章目录

  • 1.简介
  • 2.格式
  • 3.选项
  • 4.示例
    • [1. 克隆整个仓库](#1. 克隆整个仓库)
    • [3. 克隆指定分支(`-b`)](#3. 克隆指定分支(-b))
    • [4. 浅克隆(`--depth 1`)](#4. 浅克隆(--depth 1))
    • [5. 递归克隆子模块(`--recursive`)](#5. 递归克隆子模块(--recursive))
    • [6. 使用 SSH 协议](#6. 使用 SSH 协议)
    • [7. 自定义远程仓库别名(`-o`)](#7. 自定义远程仓库别名(-o))
    • [8. 只克隆指定分支的元数据(`--single-branch`)](#8. 只克隆指定分支的元数据(--single-branch))
  • 参考文献

1.简介

git clone 命令用于将远程仓库克隆到本地。

它会下载整个仓库,包含所有文件、历史提交和分支信息,并自动在本地创建一个与远程仓库同名的文件夹。

git clone 类似于 SVN 的 check out,只有将远程仓库克隆到本地,才可以通过对本地代码进行修改后再提交至远程服务端。

2.格式

shell 复制代码
git clone [选项] <仓库地址> [本地目录名]
  • <仓库地址>:远程仓库的 URL(支持 HTTPS、SSH 等协议)。
  • 本地目录名:可选,指定本地存放代码的文件夹名称。若不指定,默认使用远程仓库的项目名。

3.选项

shell 复制代码
-b <name>
	指定克隆远程仓库的某个分支(默认克隆 HEAD 指向的分支)。
--depth=<depth>
	浅克隆,只拉取最近指定次数的提交历史,用于加速下载。
--recursive
	递归克隆,克隆主项目时一并将所有子模块(submodules)拉取下来。
-o <name>
	自定义远程仓库的别名(默认为 origin)。
--single-branch
	只克隆指定分支,不拉取其他分支的元数据。

4.示例

1. 克隆整个仓库

bash 复制代码
git clone https://github.com/user/repo.git

执行后会在当前目录下创建一个 repo 文件夹,包含完整的代码和历史。

如果仓库托管在 Github,可以在 Github 页面查看仓库地址。点击 "Clone or download" 按钮,如下图所示:
## 2. 克隆到指定目录

bash 复制代码
git clone https://github.com/user/repo.git my-project

代码会下载到 my-project 文件夹中,而不是默认的 repo

3. 克隆指定分支(-b

bash 复制代码
git clone -b dev https://github.com/user/repo.git

只拉取远程 dev 分支的代码,节省时间。

4. 浅克隆(--depth 1

bash 复制代码
git clone --depth 1 https://github.com/user/repo.git

只拉取最近一次提交的代码,不包含完整修改历史,适合快速查看或 CI 环境。

5. 递归克隆子模块(--recursive

bash 复制代码
git clone --recursive https://github.com/user/repo.git

很多项目依赖第三方子模块,此命令会一并下载它们,避免后续手动 git submodule update --init

6. 使用 SSH 协议

bash 复制代码
git clone git@github.com:user/repo.git

需要事先配置好 SSH 公钥。优点是免密推送,更适合有推送权限的成员。

7. 自定义远程仓库别名(-o

bash 复制代码
git clone -o upstream https://github.com/user/repo.git

将默认的 origin 改为 upstream,常用于 Fork 工作流。

8. 只克隆指定分支的元数据(--single-branch

bash 复制代码
git clone --single-branch -b main https://github.com/user/repo.git

此命令只会拉取 main 分支,不会把其他远程分支的指针下载到本地,适合对分支数量极多的大型仓库进行精简克隆。


参考文献

git-clone Documentation

相关推荐
透明的玻璃杯36 分钟前
git应用
git
炸炸鱼.2 小时前
Git+Jenkins实战(一):从零搭建自动化发布与回滚系统(附完整代码)
git·jenkins
言6664 小时前
要忽略前端依赖包node_modules的文件在目录下 git暂存区消失
git
胡小禾5 小时前
Git Worktree
git
程序员小羊!5 小时前
18 GIt
git
怣疯knight5 小时前
Git 本地分支关联远程分支 常用命令汇总
git
ANNENBERG6 小时前
git分支开发管理
git
坤坤藤椒牛肉面6 小时前
GIT的使用
git
w3296362716 小时前
使用 OpenCode 在 Windows 上加速安装 Playwright 的完整指南
windows·git
我家媳妇儿萌哒哒1 天前
git:无法推送refs到远端。您可以试着运行“拉取”功能,整合您的更改。
git