前言
通常不用这样的操作,你只需要先 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
总结
留个笔记,方便日后查找。
版权归原作者 cluse 所有, 如有侵权,请联系我们删除。