如何只 git clone 某个 commit

前言

通常不用这样的操作,你只需要先 clone 整个仓库,再 reset 到某个 commit 即可。

然而当你遇到一个体量较大的仓库,这样 clone 可以节省时间和空间。


预定义变量

为了方便描述,先定义几个变量

#!/bin/bash -e
git_url="仓库地址"
branch_name="分支名"
tag_name="标签名"
commit_id="提交记录"

clone代码

如果你运气比较好,要下载的 commit 恰好是某个分支的最新提交,或者是某个 tag,

以下指令可以满足你的需求:(二选一)

git clone ${git_url} -b ${branch_name} --depth=1
git clone ${git_url} -b ${tag_name} --depth=1

特殊情况下,你没有这么好的运气,指令也会复杂一些:(在一个空目录中执行以下指令)

git init
git remote add origin ${git_url}
git fetch origin ${commit_id} --depth=1
git reset --hard FETCH_HEAD

总结

留个笔记,方便日后查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值