方案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仍然知道其他文件的存在,只是没有将它们检出到工作目录中。