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

相关推荐
打盹的小pig6 小时前
git pull 报错
git
Tairitsu_H17 小时前
[版本控制器Git] Git 远程仓库 | 多人协作 | 企业级 Git Flow 开发模型
git·版本控制器·远程仓库
我先去打把游戏先17 小时前
Git-Rebase使用指南-从原理到实战
服务器·git·嵌入式硬件·物联网·ubuntu
kaixin_learn_qt_ing19 小时前
我有两个程序,它们在不同的项目中,但是它们复用了一部分头文件,它们在两个不同的git仓库中,有什么好的办法可以让它们复用吗?
git
greatofdream21 小时前
git rebase时如何解决merge节点冲突问题
大数据·git·elasticsearch
敲敲敲-敲代码1 天前
git安装记录
git
我是人✓2 天前
Git入门:从零开始掌握分布式版本控制
分布式·git
Aurora_eye2 天前
Git 笔记
笔记·git
解道Jdon2 天前
FigCraft把Figma用Rust从零重写了一遍
ide·windows·git·svn·eclipse·github·visual studio
橙橙笔记2 天前
QT安卓软件的制作
android·git·qt·软件