Github「下载指定文件夹」

前言

        在Github下载文件时发现只能克隆整个仓库或者下载单个文件,如果项目过大只需要下载其中一部分,克隆整仓占空间,一个个下太麻烦,怎么办?网上很多在线工具已经失效或者被淘汰,本文提供了2种目前可用解决方式。

方法一

        主流解决方式是使用插件GitZip。Chrome下载需要魔法,后续可以直接使用;Firefox和Microsoft Edge可以直接下载。

  • 以Chrome为例,右上角设置打开Chome应用商店;

  • 将GitZip插件添加到Chrome;

  • 重新打开Github页面,发现文件前都多了一个可选框;

  • 勾选后右下角会出现一个下载按钮;

  • 鼠标悬停时会提示下载,点击下载会把选定范围的文件以zip压缩文件形式下载到本地。

方法二

        如果只是下载一个或几个文件夹,没有大量需要指定范围的需求,或者就临时用一下,可以用这个在线工具:GitHub directory downloader


The End

参考资料

GitZip - 下载🦊Firefox扩展

GitHub - 特定文件夹下载工具

### 如何从 GitHub 仓库仅下载特定文件夹 为了从 GitHub 仓库中仅下载特定的文件夹,可以使用 `git sparse-checkout` 功能。以下是具体方法: #### 方法一:通过初始化空仓库并启用稀疏检出 1. 创建一个新的本地目录,并切换到该目录。 2. 使用以下命令初始化 Git 仓库: ```bash git init ``` 3. 启用稀疏检出功能: ```bash git config core.sparsecheckout true ``` 4. 设置远程仓库地址: ```bash git remote add origin <repository-url> ``` 5. 定义需要检出的具体路径(支持多个路径,用空格分隔): ```bash echo "path/to/folder/" >> .git/info/sparse-checkout ``` 6. 拉取代码: ```bash git pull origin main ``` 此方法基于手动编辑 `.git/info/sparse-checkout` 文件来定义哪些路径应该被检出[^4]。 --- #### 方法二:利用 `--sparse` 和 `--no-checkout` 参数简化流程 另一种更简洁的方式是直接在克隆过程中应用稀疏检出设置: 1. 执行如下命令以克隆仓库而不检出任何内容: ```bash git clone --no-checkout --sparse <repository-url> <local-directory> cd <local-directory> ``` 2. 设置具体的检出路径: ```bash git sparse-checkout set path/to/folder/ ``` 3. 拉取所需的文件或文件夹: ```bash git pull ``` 这种方法允许在初始阶段就指定要检出的内容,从而减少不必要的数据传输和存储消耗[^1]。 --- #### 方法三:动态调整已有的 Sparse Checkout 路径 如果已经存在一个启用了稀疏检出的仓库,则可以通过以下方式更新其配置: 1. 查看当前的稀疏检出路径列表: ```bash git sparse-checkout list ``` 2. 添加新的路径至现有配置中: ```bash git sparse-checkout add new/path/ ``` 3. 或者重新设定完整的路径集合: ```bash git sparse-checkout set "!/*" "/specific/folder/" ``` 这种方式适用于需要频繁修改目标路径的情况[^2]。 --- ### 注意事项 - 默认情况下,Git 将会尝试拉取分支上的所有更改;因此,在执行上述操作之前,请确认所使用的分支名称是否正确(通常为主分支 `main` 或开发分支 `master`)。 - 如果遇到权限问题或者网络连接失败等情况,请检查 SSH 密钥配置以及防火墙规则等环境因素的影响。 ```python # 示例 Python 脚本用于自动化部分过程 (可选) import subprocess def setup_sparse_checkout(repo_url, folder_path): try: subprocess.run(["git", "init"], check=True) subprocess.run(["git", "remote", "add", "origin", repo_url], check=True) subprocess.run(["git", "config", "core.sparsecheckout", "true"], check=True) with open(".git/info/sparse-checkout", 'a') as f: f.write(folder_path + "\n") subprocess.run(["git", "pull", "origin", "main"], check=True) except Exception as e: print(f"Error occurred: {e}") setup_sparse_checkout("<your-repository-url>", "<desired-folder-path>") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值