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  

时间: 2024-10-19 02:37:51

Git——克隆部分文件的相关文章

Git克隆部分文件

克隆部分文件html, body {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMirror-scroll { overflow-y: hidden; overflow-x: auto; } .CodeMirror-lines { padding: 4px 0px; } .CodeMirror pre { padding: 0px 4px; } .CodeMirror-scrollbar-filler, .

git 上传文件到github,以及克隆

1.首先选择一个合适的地方创建一个空目录 mkdir learngit 2.通过git Init命令把这个目录变成git可以管理的仓库,瞬间git就把仓库建好了 3.将编写的文件放到 learngit目录或者子目录下,然后使用两个命令 git add 告诉git,把文件添加到仓库 git add readme.txt git commit 告诉git,把文件提交到仓库 git commit -m 'Wrote a readme file' 4.自行注册github账号,登录account set

git如何忽略文件

偶尔有一些文件你不想让git提交到代码配置库上,这里有一些方法可以告诉git,有哪些文件可以忽略. 创建一个本地的.gitignore 如果你在你的git库(repository)中创建了一个名为.gitignore的文件,git会使用该文件来决定在commit之前忽略哪些文件和目录. .gitignore文件应该提交到你的git库中,以便共享忽略规则给克隆该库的其他用户. GitHub维护了一个官方的.gitignore示例清单,以便用于许多流行的操作系统.生产环境,可以直接在线浏览githu

GIT(2)-从文件生命周期看提交流程

GIT的上一篇文章比较枯燥无味,理论性较强,也是难以引起共鸣!所以今天从实在操作方面说一下GIT使用过程中,使用最多的流程-提交到仓库. 开始说明提交流程之前,先看一下上篇提到的GIT整体架构图. 对!还是这张画的比较丑的图![捂脸]! 本章要说的内容,就是上面这张图的前面部分,如下: 只有提交本地仓库的流程,并没有涉及到远程仓库.关于提交流程,常用的命令:add和commit,add负责提交到暂存区,commit提交到仓库.但并不是只有这两个命令就足够了.下面开始正文. 准备你的环境 操作系统

1. Git 克隆代码

1. Git 克隆代码 git clone git://github.com/facebook/hiphop-php.git 2. Git更新分支 查看服务器上的所有分支 [[email protected] hiphop-php]git branch –r 输出结果: origin/HEAD -> origin/master origin/HPHP-2.0 origin/a832f349d8caf0de8c7df671d03c90a5e078fb53 origin/master 查看当前有效分

Git 推送文件到远程仓库

Configure Git for the first time:git config --global user.name "xxxxx xx"git config --global user.email "[email protected]" 远程仓库已创建,克隆远程仓库到本地(进入对应的文件夹进行克隆): git clone xxxxxxxxxxxx 克隆完成后,进入克隆的文件: cd  xxx 初始化本地仓库 git init 把你的项目扔进去 git st

使用git克隆项目、从dev分支上更新代码以及将代码提交到Coding(或GitHub)上面

本教程的目的: 这是个crm项目中,有两个分支一个是master 和 dev ,master主分支,不允许提交代码,我要拉去dev分支上最新的代码,并将修改后的项目,在推送到dev分支上. 一. 1.首先需要下载一个git,并安装. 2.关联本地和git网站(如果不是第一次使用git,已经配置过,请忽略) 这里是你github的不是coding的 命令: git config --global user.name "你的git名称" git config --global user.e

git忽略某些文件提交

git忽略某些文件提交 在项目中有些配置文件不需要提交,但是有同学在后面开发中发现在.igonore文件中无论如何都无法忽略某些文件的提交.原因在这里: 已经维护起来的文件,即使加上了gitignore,也无济于事.---- 那么如何解决呢?方式如下 git update-index --assume-unchanged   要忽略的文件夹/文件夹下文件名 比如我要忽略项目下.idea文件夹下所有xml文件,idea下都是xml文件(我用的webstorm): git update-index

android 入门-android Studio git 克隆

最后是完成 以上是如何从android studio Git 克隆Github的项目