Git使用技巧(二):从远程仓库拉取特定commit
Preface
今天在工作中,需要将项目切回到一个较旧的版本上验证问题,但是此版本在远程仓库上既不是独立分支,也没有tag标记。如果使用git reset --hard <commit id>
回退到旧版本,那么打断当前工作流不说,还需要较长的时间,因为还有submodule和LFS回退的问题。
后来经过简单思考,想到了一个简单的,单独clone某个commit的方法,简单记录一下。
How to?
-
新建一个空文件夹,并且初始化为git仓库,
mkdir repo2 && cd repo2
git init -
设置远端仓库地址,
git remote add <nick name> <url>
-
使用
git fetch
取得对应的commit,git fetch <nick name> <commit id>
-
检出
FETCH_HEAD
即可。git checkout FETCH_HEAD -b <new branch>
当然,如果有对远端仓库操作的权限,那么完全可以将此commit打一个临时的tag,然后使用git clone <url> -b <tag> --depth 1
即可达到目的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Stephen Zhang's Blog!
评论