git 如何克隆或下载一个仓库子文件夹?

整个仓库很庞大,只对其中的一个字文件夹感兴趣,不想将整个项目仓库全都克隆下来。

阅读 41.2k
3 个回答

git 存储文件的方式和 CVS/SVN 不同,当你 clone 一个 git 仓库时,你 clone 的是该仓库全部的数据,而不是仅仅 clone 你目前所需要的几个文件。

Git 1.7.9.5 之后的版本允许导出远端仓库的单个文件,如

git archive --remote=ssh://host/pathto/repo.git HEAD README.md # 导出 README.md 这个文件

如果你之前已进行过 clone 操作且你需要的文件在提交历史中,可以使用 git log 命令查到该 commit 的 hash 值然后执行以下命令:

git checkout hash-id path-to-file

特别的,如果你的代码是公开项目,也可以这样操作:

适用于 Coding

wget https://coding.net/u/user/p/project/git/raw/master/README

适用于 GitHub

wget https://raw.githubusercontent.com/user/project/master/README

我的解决方法:
https://github.com/geekhac/to...子目录为例:

git init todomvc && cd todomvc

git config core.sparsecheckout true //设置允许克隆子目录

echo '/examples/react/*' >> .git/info/sparse-checkout //设置要克隆的仓库的子目录路径

git remote add origin https://github.com/geekhac/to...

git pull origin master

进入你感兴趣的文件夹,执行git init初始化这个文件,在clone到你们本地

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏