如何克隆具有特定修订版的 git 存储库,就像我通常在 Mercurial 中所做的那样:
hg clone -r 3 /path/to/repository
更新 2 由于Git2.5.0可以在服务器端使用配置变量启用下面描述的功能 uploadpack.allowReachableSHA1InWant ,这里是GitHub 功能请求和启用此功能的 GitHub 提交。请注意,一些 Git 服务器默认激活此选项,例如 Bitbucket 服务器从5.5+ 版本开始启用它。有关如何激活配置选项的示例,请参阅 Stackexchange 上的此答案。
uploadpack.allowReachableSHA1InWant
更新 1 对于 Git 版本,请1.7 < v < 2.5使用 git clone 和 git reset,如Vaibhav Bajpai 的回答中所述
1.7 < v < 2.5
如果您不想获取完整的存储库,那么您可能不应该使用clone. 您始终可以使用 fetch 来选择要获取的分支。我不是汞专家,所以我不知道细节,-r但在 git 中你可以做这样的事情。
clone
-r
# 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