Git如何检出指定目录或文件
2017-03-09 15:25
204 查看
来源:http://xueliang.org/article/detail/20160819001000543
对于大型 Git 仓库,每次执行 Git 命令,都需要经过漫长的等待,特别是要经常执行的
![](http://o891smr57.bkt.clouddn.com/FriKsPuoZMDMfknq6skki_-2QgkS)
从 1.7.0 开始,Git 引入
Git 仓库中,将大幅度缩短 Git 执行命令的时间。
要想只检出指定的目录或文件,需要在
如何使用 Git 的
初始化一个仓库,目录结构如下图所示:
![](http://o891smr57.bkt.clouddn.com/FgM1B496NLsod5HmdL2QKmhmSCRY)
根目录下有 2 个子目录,以及一个
3 个。
将其推送到Github上新建的一个仓库,地址是
换一个目录,再初始化一个 Git 仓库,以便用稀疏检出的方式,检出刚才在 Github 上新建的
![](http://o891smr57.bkt.clouddn.com/FrTXWwD1_W5OZ_zTq4LafjiKJaRB)
使用
根目录下的
![](http://o891smr57.bkt.clouddn.com/FqHfvJOlYfBo9yblbkjvABAS_hWq)
添加远程仓库地址,并检出:
![](http://o891smr57.bkt.clouddn.com/FhPAM924g8GBJxpddtNxKqRbLe4J)
可以看到,Git 只检出了根目录下的
如果此时需要再检出,根目录下的
![](http://o891smr57.bkt.clouddn.com/FuDPr3IB4fFcmi3XRSlVm_gYrcUP)
和上面检出
![](http://o891smr57.bkt.clouddn.com/FtmRQFcXFI5OSlQQXkB6iQYR8pyt)
可以看到所有文件都已显示出来了。
注意这里的
复制
最后不要忘了配置 Git 的
非匹配
其他参考文章:http://blog.csdn.net/xuyaqun/article/details/49275477
对于大型 Git 仓库,每次执行 Git 命令,都需要经过漫长的等待,特别是要经常执行的
git status命令。下面是一个例子…
从 1.7.0 开始,Git 引入
sparse checkout(稀疏检出)机制,稀疏检出机制允许只检出指定目录或者文件,这在大型
Git 仓库中,将大幅度缩短 Git 执行命令的时间。
要想只检出指定的目录或文件,需要在
.git/info/sparse-checkout文件中指定目录或文件的路径,下面将以一个具体例子介绍
如何使用 Git 的
sparse checkout。
准备远程仓库
初始化一个仓库,目录结构如下图所示:根目录下有 2 个子目录,以及一个
LICENSE文件和
README.md文件,每个子目录中各有
3 个。
将其推送到Github上新建的一个仓库,地址是
git@github.com:liangzai-cool/git-sparse-checkout-study.git。
为Git配置稀疏检出
换一个目录,再初始化一个 Git 仓库,以便用稀疏检出的方式,检出刚才在 Github 上新建的 git-sparse-checkout-study仓库:
使用
git config core.sparseCheckout true命令开启 Git 稀疏检出模式。然后编辑该仓库目录下的
.git/info/sparse-checkout文件,指定检出规则。这里只检出
git-sparse-checkout-study仓库中的
dir1目录下的所有文件和
根目录下的
README.md文件:
检出
添加远程仓库地址,并检出:可以看到,Git 只检出了根目录下的
README.md文件和
dir1目录。
如果此时需要再检出,根目录下的
dir2目录,则需要将其加入到
.git/info/sparse-checkout文件中。参照下图中的方案:
关闭稀疏检出
和上面检出 dir2时类似:
可以看到所有文件都已显示出来了。
注意这里的
echo命令:
复制
echo "/*" > .git/info/sparse-checkout
最后不要忘了配置 Git 的
core.sparseCheckout为
false以及移除
.git/info/sparse-checkout文件。
.git/info/sparse-checkout中使用和
.gitignore相同的匹配模式,例如
非匹配
!/dir2/*以及
/*.java等。
其他参考文章:http://blog.csdn.net/xuyaqun/article/details/49275477
相关文章推荐
- Git如何检出指定目录或文件
- 如何在git中删除指定的文件和目录
- 如何在git中删除指定的文件和目录
- [转]如何在git中删除指定的文件和目录
- 如何在git中删除指定的文件和目录
- 多个域名指定到同一个IP下,访问时如何决定改跳到哪个文件目录
- git 如何添加指定的文件提交.
- 如何将指定文件或文件夹直接提交到svn指定目录?
- 递归删除指定目录下的.git文件
- 如何将openssl、uuid和crypto的库文件放到本地指定库目录
- 递归删除指定目录下的 .git 文件
- grep如何递归目录并在指定类型文件中查找
- java中如何把一个目录下的文件移到另一个指定目录中
- 如何在后台把本地文件传到服务器的指定目录中
- 如何使用find命令 递归删除目录下指定的文件
- 如何查看某个指定目录下的所有文件,只要显示其文件名,并把它输出
- 如何指定文件夹处理目录下文件
- 如何使用批处理,遍历指定目录下的文件。
- git如何merge指定的文件?
- SVN中如何将指定文件或文件夹直接提交到svn指定目录?