公众号首图:电脑屏幕显示 GitHub 仓库与 PicGo 操作界面

写公众号、博客或技术文档时,图片管理经常让人崩溃:

  • 截图散落在桌面,过几天就找不到原图;
  • 文章搬到另一个平台后,图片全部失效;
  • 付费图床突然涨价或停止服务,旧文章跟着遭殃。

用 GitHub 仓库 + PicGo 可以搭一套零成本、自己掌控的图片上传流程。配置一次,以后截图后直接生成 Markdown 链接。

**版本提示:**文中截图使用的 PicGo 和 GitHub 界面版本可能较旧,仅用于演示操作路径。GitHub、PicGo 及相关工具的界面和功能可能已经变化,请使用官方最新稳定版,并以官方文档和实际界面为准。

先说清楚:这里的“永久”是指图片保存在自己的仓库中,可以随时备份和迁移,并不代表 GitHub 承诺永久免费、无限存储或链接永不失效。GitHub 也不是专业 CDN,中国大陆的访问速度取决于网络环境。它适合个人博客、低流量内容站和日常写作;高流量商业站点仍建议使用对象存储加 CDN。

为什么选择 GitHub 图床?

优点

  • 成本低:个人账号可以免费创建公开仓库;
  • 文件可控:图片、目录和历史版本都在自己的仓库里;
  • 迁移方便:需要时可以克隆仓库,换到其他图床;
  • 写作效率高:PicGo 上传后直接生成 Markdown 链接。

限制

  • GitHub 不是专门的文件托管或 CDN 服务;
  • 公开仓库中的图片可能被任何人访问;
  • 仓库、账号或第三方 CDN 的可用性不受自己控制;
  • 国内网络访问 GitHub 和 jsDelivr 可能不稳定。

适用人群

场景是否适合说明
个人博客、技术文档适合图片量不大,维护成本低
自媒体日常配图适合本地保留原图,按平台上传
团队共享素材谨慎需要额外管理权限和文件命名
高流量商业网站不建议应使用正式对象存储和 CDN
身份证、合同等敏感图片禁止不要放进公开仓库

第一步:创建 GitHub 图片仓库

登录 GitHub,点击右上角 + → New repository:

  • Repository name:例如 username-image-bed;
  • Visibility:选择 Public;
  • 勾选 Add a README file;
  • 点击 Create repository。

仓库必须是公开的,否则普通图片链接无法直接访问。建议按年份和月份建立目录,例如:

1
2
3
posts/2026/11/
covers/2026/
avatar/

第二步:创建最小权限 Token

不要直接使用账号密码,也不要给 Token 开启全部仓库权限。推荐使用 GitHub 的 Fine-grained token:

Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token

  • Token name:picgo-image-bed
  • Expiration:建议选择 90 天或 1 年;
  • Repository access:Only select repositories
  • 只选择刚才创建的图片仓库;
  • Repository permissions → Contents:Read and write

其他权限不需要开启。Token 只会显示一次,生成后先保存到安全的位置。

Token 一旦泄露,应立即删除并重新生成。不要把 Token 截图、写进文章或提交到 Git 仓库。

第三步:配置 PicGo

从 PicGo 官方 Releases 下载并安装客户端,进入 图床设置 → GitHub:

配置项填写规则示例
仓库名用户名/仓库名yourname/blog-images
分支名查看仓库默认分支main 或 master
Token粘贴刚生成的 Token不要公开
存储路径按时间分类posts/2026/11/
自定义域名jsDelivr 地址https://cdn.jsdelivr.net/gh/yourname/blog-images@main

PicGo 的 GitHub 图床配置界面

保存后,把 GitHub 设为默认图床。在 PicGo 上传区拖入图片,上传完成后复制 Markdown 链接。

建议开启“时间戳重命名”,避免同名图片互相覆盖:

PicGo 开启时间戳重命名

上传成功后会得到类似下面的地址:

1
![图片说明](https://cdn.jsdelivr.net/gh/yourname/blog-images@main/posts/2026/11/example.webp)

如果 jsDelivr 暂时不可用,可以先用 GitHub 原始地址排查:

1
https://raw.githubusercontent.com/yourname/blog-images/main/posts/2026/11/example.webp

原始地址适合临时测试,但不适合作为高流量网站的长期图片地址。

第四步:接入 Typora(可选)

打开 Typora 的 偏好设置 → 图像,把上传服务设置为 PicGo,并填写 PicGo 程序路径。配置完成后,插入本地图片时可以自动上传并替换成网络链接。

无论使用哪种编辑器,都建议保留一份本地原图。GitHub 仓库只是副本,不是唯一备份。

高阶使用技巧

1. 用相册管理历史图片

PicGo 的相册可以查看和删除历史图片,适合清理误传文件:

PicGo 相册管理

2. 上传前压缩图片

图片越大,页面加载越慢,仓库备份也越费时间。建议:

  • 截图统一转为 WebP 或高质量 JPEG;
  • 长边控制在 1600~2000 像素;
  • 单张图片尽量控制在 500 KB 以内;
  • 照片质量设为 75~85;
  • 文件名使用英文、数字和短横线。

可以在 PicGo 插件设置中搜索图片压缩插件:

PicGo 图片压缩插件

3. 做好备份

至少保留三层:

  1. GitHub 仓库保存一份;
  2. 本地保留原始图片;
  3. 定期把仓库克隆到另一块硬盘或私有备份位置。

Git 可以恢复历史版本,但前提是仓库还在、账号还能登录。不要把“云端有文件”误解成“永远不需要备份”。

安全注意事项

  • Token 只授权图片仓库,不要选择“全部仓库”;
  • 不要上传身份证、合同、密码等敏感图片;
  • 公开仓库中的文件可能被搜索引擎或其他人访问;
  • Token 过期后,PicGo 会提示上传失败,重新生成并替换即可;
  • 不要把“永久免费”当成平台承诺,重要图片必须保留本地副本。

常见问题

GitHub 图床会被封吗?

没有平台能保证永远不封。只要仓库内容合规、没有侵权或滥用行为,个人博客使用通常没有问题;但账号、仓库或服务策略变化都可能影响图片访问。

jsDelivr 每月有多少免费流量?

jsDelivr 的使用政策和额度可能调整,不应把“每月 100GB”当作永久承诺。高流量站点应准备对象存储或商业 CDN,避免把业务完全依赖第三方免费服务。

手机端如何上传?

PicGo 以桌面客户端为主。手机端可以先保存图片,再通过 GitHub 网页上传,或使用支持 GitHub 图床的第三方工具。不同客户端的兼容性需要自行确认。

图片打不开怎么办?

依次检查:

  1. 仓库是否为 Public;
  2. 分支名是否填写正确;
  3. 文件是否真的出现在仓库中;
  4. 自定义域名是否包含用户名和仓库名;
  5. jsDelivr 是否存在缓存延迟。

上传提示 403 或 Permission denied

通常是 Token 权限不足或已经过期。检查 Contents 是否为 Read and write,确认 Token 没有过期,并确认它授权给了正确的仓库。

立即开始

  1. 打开 GitHub 注册并创建图片仓库;
  2. 下载 PicGo 客户端;
  3. 创建最小权限 Token;
  4. 在 PicGo 中完成配置并上传第一张测试图片;
  5. 保留原图,并定期备份整个图片仓库。

GitHub + PicGo 不是“零维护”的永久图床,但它是一套成本低、文件可控、迁移方便的图片管理方案。把图片掌握在自己手里,再根据访问量选择合适的 CDN,才是更稳妥的长期做法。