如何在github上下载单个文件夹?用git就可以呀

在查看源码的过程中,相信很多人都像我一样,遇到某个公司或个人的repository是几个项目的集合整理,而我只要其中某个项目文件夹。那不依赖其他软件,怎么通过git去下载呢???

重点来了
下面直接给个例子,然后再解释说明。相信读者会更容易理解和操作。

阿里热修复sophix demo

上图画红色圈圈的是阿里最新推出的热修复框架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上完整的操作。方便对照

GitBash

你的本地路径下,可以看到,只有你想要的文件夹,其他乱七八糟的都没有

具体可参考Git的Sparse checkout文档: http://schacon.github.io/git/git-read-tree.html#_sparse_checkout

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,404评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,958评论 19 139
  • 叫嚣着让女儿独自睡已经有一段时间了,女儿还是忍不住要跟妈妈睡。 这天晚上爸爸又有应酬,回家较晚。女儿见严...
    英云阅读 394评论 0 0
  • 这个夜晚 再一次想起的 你 慌乱而迷茫 落寞而无望 不必记得
    yuccimo阅读 125评论 0 0
  • 早晨七点半按时起床,我知道昏睡到十点会引起连锁反应,午饭提前和早饭合并,而且一天当中最清醒的时间都被睡觉和吃饭填满...
    午后月nice阅读 175评论 0 0