zoukankan      html  css  js  c++  java
  • Git——克隆部分文件

    在进行项目开发的时候,有时候会有这样的需求那就是:我们只希望从Git仓库里取指定的文件或者文件夹出来。在SVN里面,这非常容易实现,因为SVN基于文件方式存储,而Git却是基于元数据方式分布式存储文件信息的,它会在每一次Clone的时候将所有信息都取回到本地,即相当于在你的机器上生成一个克隆版的版本库。因此在Git1.7.0以前,这无法实现,但是幸运的是在Git1.7.0以后加入了Sparse Checkout模式,这使得Check Out指定文件或者文件夹成为可能。

    具体实现如下:

    1 $mkdir project_folder
    2 $cd project_folder
    3 $git init
    4 $git remote add -f origin <url>

    上面的代码会帮助你创建一个空的本地仓库,同时将远程Git Server URL加入到Git Config文件中。 
    接下来,我们在Config中允许使用Sparse Checkout模式:

    1 $git config core.sparsecheckout true

    接下来你需要告诉Git哪些文件或者文件夹是你真正想Check Out的,你可以将它们作为一个列表保存在.git/info/sparse-checkout文件中。 
    例如:

    1 $echo “libs” >> .git/info/sparse-checkout
    2 $echo “apps/register.go” >> .git/info/sparse-checkout
    3 $echo “resource/css” >> .git/info/sparse-checkout

    最后,你只要以正常方式从你想要的分支中将你的项目拉下来就可以了:

    1 $git pull origin master

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

    一个完整的例子:

     1 #目标,获取https://github.com/pallets/flask.git开源项目的examples/flaskr文件见内容做测试
     2 mkdir gitSparse
     3 cd gitSparse/
     4 git init
     5 git remote add -f origin https://github.com/pallets/flask.git
     6 ls
     7 git config core.sparsecheckout true
     8 echo "examples/flaskr" >> .git/info/sparse-checkout
     9 cat ./.git/info/sparse-checkout 
    10 git pull origin  master 

    参考资料:

    1. http://blog.csdn.net/linlzk/article/details/49019787

    2. http://www.cnblogs.com/xilifeng/p/5225666.html  

  • 相关阅读:
    jQuery中常用方法和jQuery思维导图
    jQuery
    JS-AJAX and jQuery-AJAX
    Linux系统里导入maven项目
    maven项目里的ssh框架整合
    spring框架的两大核心:IOC和AOP
    JAVA的抽象类和接口
    JAVA面向对象的三大特征
    JAVA---面向对象
    JAVA---方法
  • 原文地址:https://www.cnblogs.com/OldJack/p/7614676.html
Copyright © 2011-2022 走看看