在查看源码的过程中,相信很多人都像我一样,遇到某个公司或个人的repository是几个项目的集合整理,而我只要其中某个项目文件夹。那不依赖其他软件,怎么通过git去下载呢???
重点来了
下面直接给个例子,然后再解释说明。相信读者会更容易理解和操作。
上图画红色圈圈的是阿里最新推出的热修复框架sophix的demo,也就是我想下载的文件夹 hotfix_android_demo
。
我们一步一步操作先,最后会给出在GitBash上完整操作的截图。
-
先进入到你要存放的路径
$ cd <路径>
我的操作 :
$ cd D:/android/demo/SophixDemo
我的
SophixDemo
文件夹是刚刚创建的空文件夹。想在命令行里创建文件夹的话,那就$ mkdir 文件夹名称
-
创建一个空的本地仓库
$ git init
-
连接远程仓库GitHub
$ git remote add -f origin <url>
我的操作:
$ git remote add -f origin https://github.com/aliyun/alicloud-android-demo.git
然后控制台会显示一些updating...信息。注意,这里的url必须是.git结尾的。
-
开启sparse checkout 模式
$ git config core.sparsecheckout true
简单解释一下:
Git1.7.0以后加入了Sparse Checkout模式,这使得Check Out指定文件或者文件夹成为可能。
-
告诉Git哪些文件或者文件夹是你真正想Check Out的
(你可以将它们作为一个列表保存在 .git/info/sparse-checkout 文件中。)例如:
$ echo libs >> .git/info/sparse-checkout
$ echo apps/register.go >> .git/info/sparse-checkout
$ echo resource/css >> .git/info/sparse-checkout
我的操作:
$ echo hotfix_android_demo >> .git/info/sparse-checkout
还记得我开头说要下载阿里sophix的demo吗 -
最后一步,拉取想要的分支
$ git pull origin master
齐活!
以下在GitBash上完整的操作。方便对照
你的本地路径下,可以看到,只有你想要的文件夹,其他乱七八糟的都没有
具体可参考Git的Sparse checkout文档: http://schacon.github.io/git/git-read-tree.html#_sparse_checkout