git通过SHA或branch或tag获取指定版本仓库

最近需要重现一个工程,需要caffe2来做平台。但之众所周知,caffe2已经并进了pytorch的分支,这个时候如果去看caffe2的git仓库恐怕是这样的:
git通过SHA或branch或tag获取指定版本仓库_第1张图片
已是空空如也,不过我实际上需要的是这个版本的仓库:
git通过SHA或branch或tag获取指定版本仓库_第2张图片
这个版本还是比较正常,需要的东西都在,那么我们来动手把它搞下来吧~


通过SHA找到指定仓库

  1. 首先在网页端的github获SHA的值,该仓库的地址是这样的
https://github.com/caffe2/caffe2/tree/b4e1588130198b6e98e4d0acf5b340015473e562

那么tree/后面的b4e1588130198b6e98e4d0acf5b340015473e562就是我们所需要的SHA key
3. 那么事不宜迟,我们需要先把源仓库clone下来:

git clone https://github.com/caffe2/caffe2.git

因为我的实际需要,我加上了--recursive 来递归clone该仓库引用所有的别的仓库
4. 待漫长的clone过程完成后,会发现clone下来的还是master分支里面空空的那个样子,这时候千万别删除,不要认为自己下了那么半天全下错了,或者系统帮你删掉了不是该分支下的东西,其实你已经完整的clone下来了。
cd caffe2 进入你刚clone的仓库, 使用

git log

可以看到所有的commit修改版本的信息和其版本对应的SHA值(图中黄色字体commit 后的就是SHA值):
git通过SHA或branch或tag获取指定版本仓库_第3张图片
在这里面一定能找到我们需要的版本的SHA值b4e1588130198b6e98e4d0acf5b340015473e562,这个时候其实我们可以有两种做法来切换到这个分支:

方法1:

建立新分支与SHA值对应:

git branch 新分支名称 SHA值

如:

git branch mycaf b4e1588130198b6e98e4d0acf5b340015473e562

这里注意,新的分支名称不能和已有的分支名称重复,然后切换到新分支:

git checkout 新分支名称

切换后可以通过

git branch

来查看是否切换成功:
在这里插入图片描述

方法2:

暴力,直接将SHA对应的版本替换:

git checkout SHA值

branch的方法

git branch -a
git checkout 目的branch名称

或者在下载的时候直接指定:

git clone -b 目的branch https://github.com/...

tag的方法

git tag
git checkout 目的tag名称

你可能感兴趣的:(git通过SHA或branch或tag获取指定版本仓库)