只想克隆项目中的 Source 文件夹,而不影响其他内容

方案1:使用稀疏检出(Sparse Checkout) - 推荐

bash 复制代码
# 1. 克隆仓库但不检出文件
git clone --filter=blob:none --no-checkout git@gitcode.com:ChenChao_GitCode/UnrealEngine-5.6.1-release.git
cd UnrealEngine-5.6.1-release

# 2. 启用稀疏检出
git sparse-checkout init --cone

# 3. 设置只检出 Source 文件夹
git sparse-checkout set Source

# 4. 检出文件
git checkout

方案2:使用浅层克隆 + 稀疏检出

bash 复制代码
# 克隆并只获取 Source 目录的历史
git clone --depth 1 --filter=blob:none --sparse git@gitcode.com:ChenChao_GitCode/UnrealEngine-5.6.1-release.git
cd UnrealEngine-5.6.1-release

# 设置稀疏检出规则
git sparse-checkout set Source

方案3:如果只需要最新版本的 Source 文件夹

bash 复制代码
# 使用 git archive 直接下载 Source 文件夹
git archive --remote=git@gitcode.com:ChenChao_GitCode/UnrealEngine-5.6.1-release.git HEAD:Source | tar -x

方案4:完整克隆后删除其他文件(不推荐用于大仓库)

bash 复制代码
# 完整克隆
git clone git@gitcode.com:ChenChao_GitCode/UnrealEngine-5.6.1-release.git
cd UnrealEngine-5.6.1-release

# 删除除 Source 外的所有文件和文件夹
# 注意:这会永久删除本地文件
find . -maxdepth 1 ! -name '.' ! -name 'Source' ! -name '.git' -exec rm -rf {} +

推荐使用方案1

方案1(稀疏检出)是最佳选择,因为:

  • 只下载你需要的文件,节省带宽和存储空间
  • 保持完整的git历史记录
  • 不会影响远程仓库
  • 可以随时添加其他需要的文件夹

执行后,你的本地仓库将只包含 Source 文件夹的内容,但git仍然知道其他文件的存在,只是没有将它们检出到工作目录中。

相关推荐
沐风听雨_A2 分钟前
英贝斯泰2.4G&5G串口转Wifi模块配置笔记
笔记·5g
yuxb732 分钟前
kubernetes弹性伸缩
笔记·kubernetes
全栈陈序员2 分钟前
你对 SPA 单页面应用的理解?它的优缺点分别是什么?如何实现 SPA 应用?
前端·vue.js·学习·前端框架·vue
soumns丶涛10 分钟前
ESP32学习(1) - 点亮第一个LED
学习
全栈陈序员20 分钟前
请描述下你对 Vue 生命周期的理解?在 `created` 和 `mounted` 中请求数据有什么区别?
前端·javascript·vue.js·学习·前端框架
代码游侠21 分钟前
应用——UDP Socket 编程笔记
linux·运维·网络·笔记·网络协议·学习·udp
EchoL、26 分钟前
【论文阅读】SteganoGAN:High Capacity Image Steganography with GANs
论文阅读·人工智能·笔记·算法
YJlio27 分钟前
Windows Sysinternals 文件工具学习笔记(12.10):PendMoves + MoveFile 实战——重启后文件替换的安全姿势
windows·笔记·学习
知识分享小能手28 分钟前
Ubuntu入门学习教程,从入门到精通, Ubuntu 22.04 文件和目录管理完全指南(7)
linux·学习·ubuntu
黛玉晴雯子00131 分钟前
Devops基础之Gitlab概述(持续更新)
git