如何克隆仅Git存储库的子目录

如何克隆仅Git存储库的子目录

您正在尝试做的事情称为 稀疏克隆(Sparse Checkout模式),该功能已添加到 git 1.7.0(2012 年 2 月)中,在Git1.7.0以前,这无法实现。

进行稀疏克隆的步骤如下:

以下所有操作都在自己本机电脑执行

新建仓库并进入文件夹

此步骤一定要新建一个空的目录

mkdir test && cd test     //新建仓库并进入文件夹
git init 
git remote add -f origin http://xxxxxt.git // 这里换成你要克隆的项目和库

设置允许克隆子目录

git config core.sparsecheckout true //设置允许克隆子目录

在.git目录下,config文件会新增一行代码 sparseCheckout = true,结果如下。

设置要克隆的仓库的子目录路径

//设置要克隆的仓库的子目录路径   //空格别漏
echo "preview_designeditor/" >> .git/info/sparse-checkout 
echo "project-management/" >> .git/info/sparse-checkout

在.git目录下的info文件夹下,会新增一个文件sparse-checkoutsparse-checkout文件中内容如下:

下载

git pull origin master 

更多详细内容,请微信搜索“前端爱好者戳我 查看

您可能希望查看扩展教程,您应该阅读稀疏结帐的官方文档.

作为一个功能:

function git_sparse_clone() (
  rurl="$1" localdir="$2" && shift 2

  mkdir -p "$localdir"
  cd "$localdir"

  git init
  git remote add -f origin "$rurl"

  git config core.sparseCheckout true

  # Loops over remaining args
  for i; do
    echo "$i" >> .git/info/sparse-checkout
  done

  git pull origin master
)

用法:

git_sparse_clone "http://github.com/tj/n" "./local/location" "/bin"

请注意,这仍将从服务器下载整个存储库 - 只有结帐大小减少.目前,无法仅克隆单个目录.但是,如果您不需要存储库的历史记录,则可以通过创建浅层克隆来至少节省带宽.

扩展 如何使用 git filter-repo 工具来来实现此功能

对不起,我的回答有误。Git本身并没有提供直接克隆仓库子目录的功能。但是你可以通过以下步骤来实现类似的效果:

  1. 首先,在浏览器中打开仓库的 GitHub 页面或其他 Git 托管平台,并找到子目录的 URL。

  2. 在本地选择一个合适的目录,打开命令行或终端。

  3. 使用以下命令进行完整克隆仓库:

    git clone <仓库URL>
    
  4. 进入克隆下来的仓库目录:

    cd <仓库名>
    
  5. 使用 git filter-repo 工具来提取子目录。git filter-repo 是一个强大的工具,可以用于过滤和转换 Git 仓库的历史记录。

  6. 运行以下命令来提取子目录:

    git filter-repo --path <子目录路径>
    

    其中 <子目录路径> 是你想要提取的子目录在仓库中的相对路径。

  7. 等待命令执行完毕,你将得到一个只包含指定子目录的新的 Git 仓库。

请注意,这种方法会创建一个新的 Git 仓库,其中只包含指定的子目录,并且不保留原始仓库的提交历史。如果你需要保留完整的提交历史,那么你可能需要考虑其他方法,比如使用 git subtree 或者 git submodule

参考文档

  • https://javaforall.cn/162531.html
  • 25
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端布道人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值