如何提交代码并仅保留代码的Git提交历史,避免图片占用仓库空间?
解决方案
方案1:用.gitignore隔离图片,配合轻量同步工具
- 将图片目录(比如
/static/images)添加到项目根目录的.gitignore文件中,让Git完全忽略图片文件的改动,只追踪代码文件的提交历史,从根源避免图片冗余占用仓库空间。 - 本地修改图片后,用
rsync这类工具单独同步图片到服务器,命令示例:rsync -avz ./local/images/ user@server:/path/to/website/images/。代码改动依然通过git push+git pull同步,互不干扰。
方案2:用Git标记忽略图片改动(单人维护场景适用)
- 对频繁修改的单张/少量图片,执行命令:
git update-index --assume-unchanged ./path/to/image.jpg,让Git暂时忽略该文件的后续改动,不会将其纳入提交记录。 - 注意:如果有其他协作者修改同一张图片并推送到仓库,你执行
git pull时会触发冲突,仅适合你独自维护图片的场景。
方案3:拆分代码与图片仓库
- 把网站核心代码放在主Git仓库,图片资源单独创建一个仓库(或用GitHub Release存储不同版本的图片包)。
- 服务器上通过脚本自动拉取代码仓库的最新代码,同时同步图片仓库的最新资源,两个仓库各自维护独立历史,代码仓库完全不会被图片冗余信息填满。
内容的提问来源于stack exchange,提问作者user20945136
相关产品推荐
相关产品推荐

