最近需要重现一个工程,需要caffe2来做平台。但之众所周知,caffe2已经并进了pytorch的分支,这个时候如果去看caffe2的git仓库恐怕是这样的:
已是空空如也,不过我实际上需要的是这个版本的仓库:
这个版本还是比较正常,需要的东西都在,那么我们来动手把它搞下来吧~
通过SHA找到指定仓库
- 首先在网页端的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值):
在这里面一定能找到我们需要的版本的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名称