git 不用clone整个远程仓库,只把特定的commit给fetch下来的方案

一个麻烦点就是,我需要阅读一个大点的开源项目,远程仓库的代码量太庞大了,如果我需要git reset --hard [commit sha1]感兴趣的commit快照,就首先得git clone整个远程仓库,

时间需要等待太长,而且网络一旦有问题还会功亏一篑。所有有没有一种只拉取远程仓库中的某个commit呢?有。命令行如下:

 

# make a new blank repository in the current directory
git init

# add a remote
git remote add [nick_name] [url://to/source/repository]

# fetch a commit (or branch or tag) of interest
# Note: the full history of this commit will be retrieved
git fetch [nick_name] <sha1-of-commit-of-interest>

# reset this repository's master branch to the commit of interest
git reset --hard FETCH_HEAD


references:
https://stackoverflow.com/questions/14872486/retrieve-specific-commit-from-a-remote-git-repository
https://stackoverflow.com/questions/14370157/git-fetch-a-specific-commit-by-hash
https://stackoverflow.com/questions/3489173/how-to-clone-git-repository-with-specific-revision-changeset#
posted @ 2017-07-18 10:35  foo__hack  阅读(12014)  评论(0编辑  收藏  举报