• 用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

    之后

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

    如果以后修改了 .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
    

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

    参考

  • 相关阅读:
    【算法笔记】B1015 德才论
    【算法笔记】B1014 福尔摩斯的约会
    【算法笔记】B1013 数素数
    【算法笔记】B1012 数字分类
    【算法笔记】B1011 A+B 和 C
    【算法笔记】B1010 一元多项式求导
    【算法笔记】B1009 说反话
    【算法笔记】B1008 数组元素循环右移问题
    SSLOJ 1336.膜拜神牛
    SSLOJ 1335.蛋糕切割
  • 原文地址:https://www.cnblogs.com/impw/p/15629514.html
Copyright © 2020-2023  润新知