小编典典

如何克隆具有特定修订/变更集的 git 存储库?

all

如何克隆具有特定修订版的 git 存储库,就像我通常在 Mercurial 中所做的那样:

hg clone -r 3 /path/to/repository

阅读 125

收藏
2022-03-14

共1个答案

小编典典

更新 2 由于Git2.5.0可以在服务器端使用配置变量启用下面描述的功能
uploadpack.allowReachableSHA1InWant ,这里是GitHub
功能请求
启用此功能的 GitHub
提交
。请注意,一些
Git 服务器默认激活此选项,例如 Bitbucket 服务器从5.5+
版本
开始启用它。有关如何激活配置选项的示例,请参阅
Stackexchange 上的此答案。

更新 1 对于 Git 版本,请1.7 < v < 2.5使用 git clone 和 git reset,如Vaibhav Bajpai
的回答中所述

如果您不想获取完整的存储库,那么您可能不应该使用clone. 您始终可以使用 fetch
来选择要获取的分支。我不是汞专家,所以我不知道细节,-r但在 git 中你可以做这样的事情。

# make a new blank repository in the current directory
git init

# add a remote
git remote add origin url://to/source/repository

# fetch a commit (or branch or tag) of interest
# Note: the full history up to this commit will be retrieved unless 
#       you limit it with '--depth=...' or '--shallow-since=...'
git fetch origin <sha1-of-commit-of-interest>

# reset this repository's master branch to the commit of interest
git reset --hard FETCH_HEAD
2022-03-14