如何在不提交至仓库的情况下为GitHub README存储GIF?
在GitHub README中嵌入GIF且不纳入仓库追踪的解决方案
需求说明
想在GitHub的README.md里插入GIF,看到不少维护完善的仓库没在代码目录里存图片/GIF,但能通过https://raw.githubusercontent.com/xxx/xxx/xxx.gif这类链接引用资源。我要的是同样的效果,但绝对不能把GIF文件放进仓库追踪、推送,也不能让克隆仓库的人下载到这些文件。
已尝试的方法及痛点
- 仓库Issue上传GIF拿链接:能用,但链接全是随机字符,完全看不懂,比如
https://user-images.githubusercontent.com/21893471/47281234-9f9b23ff-21ff-88ad-98f1-5555d1239ba807.gif - 单独分支存媒体文件:可行,但会多一个分支,别人克隆仓库时会同步把GIF也下下来,不符合需求
推荐的几种靠谱方案
1. 用Gist托管媒体文件
新建一个Gist,把GIF拖进去上传,上传完右键点Gist里的GIF文件,复制链接地址,就能拿到类似https://gist.githubusercontent.com/你的用户名/随机ID/raw/自定义文件名.gif的链接,直接在README里用引用就行。
好处:
- 链接带自定义文件名,比Issue的链接可读性强太多
- 完全和主仓库分离,不会被纳入主仓库追踪,克隆主仓库也不会下到这些GIF
- Gist单独管理媒体文件,后续修改删除都方便
2. 用GitHub Pages托管
可以建一个专门的GitHub Pages仓库(或者用现有仓库的Pages功能),把GIF传到这个仓库的指定文件夹里,然后用https://你的用户名.github.io/仓库名/文件夹/文件名.gif的链接引用。
优势:
- 链接结构完全自定义,想怎么命名路径都可以,清晰规整
- 所有媒体文件集中在Pages仓库,和主仓库彻底分开
- 克隆主仓库时完全不会涉及这些媒体文件,不占体积
3. 利用Release附件功能
去仓库的Release页面新建一个Release(可以设成草稿或者预发布,不用对外公开),把GIF作为附件传上去,传完复制附件的下载链接(格式大概是https://github.com/你的用户名/仓库名/releases/download/版本号/文件名.gif),直接放到README里用就行。
特点:
- 链接带版本号和文件名,辨识度高
- 媒体文件和Release绑定,不会进入代码仓库的追踪列表
- 不用额外建仓库或分支,就在现有仓库里操作
注意点
- 以上方案都是用GitHub自己的托管服务,稳定性有保障,而且能直接渲染GIF
- 尽量别用第三方图床,哪天图床挂了,README里的GIF就全挂了
内容的提问来源于stack exchange,提问作者Meik
相关产品推荐
相关产品推荐

