Git如何Check Out出指定文件或者文件夹

原文  http://www.handaoliang.com/a/20140506/195406.html

在进行项目开发的时候,有时候会有这样的需求那就是:我们只希望从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

时间: 2024-08-30 03:23:00

Git如何Check Out出指定文件或者文件夹的相关文章

【转】Git如何Check Out出指定文件或者文件夹

[转]Git如何Check Out出指定文件或者文件夹http://www.handaoliang.com/a/20140506/195406.html 在进行项目开发的时候,有时候会有这样的需求那就是:我们只希望从Git仓库里取指定的文件或者文件夹出来.在SVN里面,这非常容易实现,因为SVN基于文件方式存储,而Git却是基于元数据方式分布式存储文件信息的,它会在每一次Clone的时候将所有信息都取回到本地,即相当于在你的机器上生成一个克隆版的版本库.因此在Git1.7.0以前,这无法实现,但

学习git的随手记—— Github项目集链接中check out 出指定某个项目

开发android的都知道github上面的的开源项目很多,需要check out 的时候,只要clone对应的链接,直接check out 项目就好,但有时候会遇到,我们想要check out的项目,是在某个项目集中,而clone的链接,是这个项目集而不是我们想要的某个特定项目.那么问题来了,我们要怎么样才能check out指定的项目呢? 这里先贴上两个原文链接,一个是英文版:http://jasonkarns.com/blog/subdirectory-checkouts-with-git

Git sparse-checkout 检出指定目录或文件

根据网上资料整理而来,git 1.7版本后支持的sparse checkout特性,可以指定需要checkout的目录或者文件. # 设置允许git克隆子目录 git config core.sparsecheckout true # 创建本地空repo git init myRepo && cd myRepo # 设置要克隆的仓库的子目录路径, "*" 是通配符,"!" 是反选 echo deployment >> .git/info/

git 在本地备份与指定不需要管理文件

git 在本地备份 备份文件夹操作 在本地备份文件夹克隆一个不带工作区的仓库: 哑协议: git clone --bare <workspace>/.git yourwork.git git clone --bare file:///<workspace>/.git yourwork.git 工作文件操作 若是没有关联远端仓库,在本地工作文件直接git push会提示添加远端仓库. $ git push fatal: No configured push destination.

git跟踪指定几个文件夹

#编辑.gitignore文件(vim .gitignore) #忽略所有文件,注意放在开头 /* #除folder1文件夹外 !/folder1 #除folder2文件夹外 !/folder2  #总的效果就是git只跟踪folder1和folder2两个文件夹

idea使用Git提交代码时忽略指定文件或文件夹

简述 使用idea编写代码并使用git作为版本控制器的时候,常常不需要提交配置文件以及一些其他不需要提交的文件,可以使用.ignore插件来在上传的时候忽略一些文件或文件夹. 安装 注意:安装完成之后要重启(restart)IDEA,插件才会生效. 配置   生成文件内容解释: 内容就是“禁止”提交更新的文件夹名称或文件类型.每个文件夹占一行. 补充: 禁止提交的文件夹在服务器(也就是GitHub)上面不能存在,如果存在的话你要先删除才可以.  禁止提交更新的文件或文件夹在项目目录中是灰色的.

使用git checkout 指定git代码库上的指定分支

由于以前一直是在用svn,到狼厂,大家都用Git.哥的开发环境:IntelliJ 说说简单的操作过程吧. 1.检出Git代码库 cd到指定目录 git clone http://..../android.git clone远程的代码到本地 2.git branch -r 展示该Git库下的所有branch 3.git checkout -b master_3.0 这里的master_3.0是上一步中branch列表中的origin/master_3.0,也是我们想check出来的分支. 常用Gi

git小技巧--如何从其他分支merge个别文件或文件夹

在实际工作中,一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,进行分别开发. 创建分支 功能分为2个分支,分别为A.B. A上面有个列表页功能 B上面有个详情页功能,还有个系统消息功能 产品经理说先上列表功能,于是我们就开发A分支,列表功能很快开发完成. 第二天按常理开发B分支,开发到一半,产品经理说目前的系统消息功能需要急着上线,要和列表功能一起上线,当时就懵逼了,然后赶紧放下详情页的开发,立马去开发系统消息功能,开发完之后需要将列表功能和系统消息功能

git 上传代码到GitHub 以及git删除github上文件和文件的命令

Git入门 如果你完全没有接触过Git,你现在只需要理解通过Git的语法(敲入一些命令)就可以将代码上传到远程的仓库或者下载到本地的仓库(服务器),可知我们此时应该有两个仓库,就是两个放代码的地方,一个是本地,一个是远程的(如Github).企业或者团队可以通过Git来对项目进行管理,每个程序员只需将自己的本地仓库写好的代码上传到远程仓库,另一个程序员就可以下载到本地仓库了.今天我们就从Git终端软件的安装开始,再这之前我也简单介绍一下Github. Git上传代码 一.准备工作 1.注册一个g