我如何用特定的版本克隆git存储库,就像我通常在Mercurial中做的那样:
hg clone -r 3 /path/to/repository
我如何用特定的版本克隆git存储库,就像我通常在Mercurial中做的那样:
hg clone -r 3 /path/to/repository
当前回答
git克隆https://github.com/ORGANIZATION/repository.git(克隆存储库)
CD存储库(导航到存储库)
Git获取原点2600f4f928773d79164964137d514b85400b09b2
git checkout FETCH_HEAD
其他回答
# clone special tag/branch without history
git clone --branch=<tag/branch> --depth=1 <repository>
# clone special revision with minimal histories
git clone --branch <branch> <repository> --shallow-since=yyyy-MM-ddTHH:mm:ss # get the commit time
cd <dir>
git reset --hard <revision>
如果不设置uploadpack,就不能获得没有历史记录的修订。在服务器端allowReachableSHA1InWant=true,而您可以为它创建一个标记并克隆特殊标记。
总结一下(git v. 1.7.2.1):
在你想要回购的地方做一个常规的git克隆(得到所有的日期-我知道,不是想要的,我们正在那里) Git checkout <sha1 rev>你想要的rev Git重置——很难 Git checkout -b master
克隆一个git存储库,恰当地说,就是克隆整个存储库:没有办法只选择一个修订版本来克隆。然而,一旦你执行了git克隆,你可以通过执行checkout <rev>来检出一个特定的修订。
对于单个文件,当提交号已知时,可以使用wget onliner:
wget https://raw.githubusercontent.com/torvalds/linux/896066ee1cf4d653057dac4e952f49c96ad16fa7/README
我的版本是公认的答案和最多赞的答案的结合。但它有点不同,因为每个人都使用SHA1,但没有人告诉你如何获得它
$ git init
$ git remote add <remote_url>
$ git fetch --all
现在你可以看到所有的分支&提交
$ git branch -a
$ git log remotes/origin/master <-- or any other branch
最后,您知道了所需提交的SHA1
git reset --hard <sha1>