当前位置:   article > 正文

如何在github上下载单个文件/文件夹,或者只下载当前文件不下载历史记录?_git不下载历史

git不下载历史

0.问题背景

在使用github时,经常会碰到项目文件很多、很大,需要下载一部分文件/文件夹的情况;或者是项目二进制文件较多,历史记录数据很大,直接git clone的话,会下载很久。这时候就需要部分下载或者只下载当前文件快照。

1.使用Octotree下载部分文件

如果下载文件比较少,可以直接安装octotree插件,点击即可下载。

github链接:https://github.com/ovity/octotree

插件链接(需要外网):https://chrome.google.com/webstore/detail/octotree/bkhaagjahfmjljalopjnoealnfndnagc?hl=en-US 

2.利用Sparse Checkout模式下载部分文件/文件夹

参考:

How can I download a specific folder from a GitHub repo?

如何在github上下载单个文件夹?用git就可以呀

  1. # 创建空文件夹
  2. mkdir directoryName
  3. cd directoryName
  4. # 创建一个空的本地仓库
  5. git init
  6. # 连接远程仓库,使用.git形式的clone链接
  7. git remote add origin -f repoUrl
  8. # 开启sparse checkout 模式
  9. git config core.sparsecheckout true
  10. # 告诉git哪些文件或者文件夹是你真正想check out的
  11. # 也可直接在对应文件夹新建sparse-checkout文件并编辑
  12. echo somefile.csv>>.git/info/sparse-checkout
  13. echo somefolder>>.git/info/sparse-checkout
  14. # 拉取想要的分支
  15. git pull origin master

测试发现,在进行 git remote add origin -f repoUrl 这一步时,需要进行Updating origin,当历史记录较多时耗时较长,因为需要读取所有的记录。

3.使用git clone --depth下载当前快照文件

参考:git - only fetch the files, not the history

当我们只需要当前快照文件,而不需要历史记录的时候可以使用这种方法。

  1. # 使用.git形式的链接
  2. git clone --depth=1 repoUrl

 这种方式称为"shallow clone",“浅克隆”,通过这种方式clone的,无法进行commit/push。

实测这种方式相比上面的方法2速度会更快一些!

4.直接点击Clone or download按钮下载zip

参考:Fastest way to download a GitHub project

在project页面直接点击Clone or download按钮,选择Download ZIP,会直接下载当前最新版本的代码zip压缩包(没有.git文件部分),下载完成之后直接解压即可。这种方法和方法3的结果相同,但是会更方便!

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/432593
推荐阅读
相关标签
  

闽ICP备14008679号