用git按需下载github仓库部分/单个文件夹的方法

用git按需下载github仓库部分/单个文件夹的方法

Git 的 sparse checkout 跟 shallow clone/pull

想下载个大仓库到本地,但是zip文件老是出错而且下载时间长,遂使用此方法完成独立的文件夹下载。
步骤

(2~4顺序可换):

  1. 建立一个空的git 本地仓库:
    $ git init new.project && cd new.project
    
  2. 在本地仓库里面启用sparse-checkout:
    $ git config core.sparseCheckout true
    
  3. 设定你要checkout 哪些文件夹(如/xxx/*表示xxx文件夹下所有文件)(也可以用vim直接打开 .git/info/sparse-checkout写入)
    $ echo '/xxx/*' >> .git/info/sparse-checkout
    
  4. 设定remote (要从哪里clone/pull?):
    $ git remote add origin git://github.com/xxx/xxx.git
    
  5. 然后就可以开始pull 了(这边可以加上后面说的shallow pull,加上–depth=n
    $ git pull origin master
    

之后

  1. 如果只拉取最近一次的变更,忽略以前的变更记录,在拉取时可以加参数depth,如git pull --depth=1 origin master (浅克隆)

  2. 如果以后修改了 .git/info/sparse-checkout,增加或删除部分目录,可以执行如下命令重新Checkout

    $ git checkout master
    

    或执行以下命令:

    $ git read-tree -mu HEAD
    

    如果本地已经建了版本库,要使用这个功能,可以进入版本库的目录,执行以下命令

    $ git config core.sparsecheckout true
    $ echo "/xxx/*" >> .git/info/sparse-checkout
    $ echo "/xxx" >> .git/info/sparse-checkout
    $ git checkout master
    
  3. 要关闭 sparse checkout功 能,仅仅修改设置,将core.sparsecheckout设为false是不生效的,需要修改 .git/info/sparse-checkout 文件,用一个”*“号替代其中的内容,然后执行 checkout 或 read-tree 命令。

转载于博客园impwa

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值