首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何浅度克隆深度为1的特定提交?

如何浅度克隆深度为1的特定提交?
EN

Stack Overflow用户
提问于 2018-03-12 07:39:58
回答 3查看 0关注 0票数 0

是否可以浅层克隆存储库中的特定提交,即深度为1? 就像是

代码语言:javascript
复制
git clone http://myrepo.git 728a4d --depth 1

在提交SHA 728a4d时获取存储库状态...?

其动机是避免必须克隆整个存储库,然后检查特定的提交,当我们只关心该特定提交的存储库状态时。

EN

回答 3

Stack Overflow用户

发布于 2018-03-12 15:31:18

从Git 2.5.0开始(需要在双双(客户机和服务器端)可以设置uploadpack.allowReachableSHA1InWant=true在服务器端启用特定SHA 1的获取:

代码语言:javascript
复制
git init
git remote add origin <url>
git fetch --depth 1 origin <sha1>
git checkout FETCH_HEAD
票数 0
EN

Stack Overflow用户

发布于 2018-03-12 15:58:32

直接的答案是:你不能。

如何将存储库复制到特定的提交?(完全克隆)

代码语言:javascript
复制
# Create empty repository to store your content
git clone <url>
git reset <sha-1> --hard

更多信息:

如何克隆单支?

git clone <url> --branch <branch_name> --single-branch <folder_name>

如何仅从给定分支克隆最新提交?

git clone <url> --depth=1 --branch <branch_name> --single-branch <folder_name>

如何用深度1浅克隆特定的提交?

--depth暗示--single-branch...

使用FETCH命令代替克隆:

代码语言:javascript
复制
# fetch a commit (or branch or tag) of interest
# In this case you will have the full history of this commit
git fetch origin <sha1>
票数 0
EN

Stack Overflow用户

发布于 2018-03-12 17:32:12

试着使用while在bash:

代码语言:javascript
复制
git clone --depth=1 $url
i=1; while ! git show $sha1; do git fetch --depth=$((i+=1)); done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档