如何删除Google Apps Script中1700+旧部署版本以合规200上限?
Google Apps Script 版本超限清理指南
一、你踩的删除误区
- 进错了管理入口:
Manage Deployments管的是部署记录,真正的版本列表在项目设置 > Versions标签页里。一直在部署页面操作,当然删不了几个版本。 - 版本还绑着在用部署:如果某个版本关联着Active状态的部署,或是你那2个还在使用的归档部署,这个版本根本删不掉。得先把部署改成Disabled,或者把部署重新关联到其他版本,才能删对应的旧版本。
- 碰了受保护的版本:当前正在使用的版本(比如你正在编辑的代码对应的已发布版本),如果有触发器、绑定的服务依赖,也会无法删除,得先解除这些关联。
二、批量删除版本的高效方法
用Apps Script API批量清理
这是最快的方式,步骤如下:
- 打开Google云控制台,找到你的Apps Script项目,启用Google Apps Script API。
- 回到脚本编辑器,点击项目设置,复制“项目ID”。
- 新建空白脚本,粘贴下面的代码,把
PROJECT_ID换成你的项目ID,KEEP_VERSION_IDS填上要保留的版本号(当前版本+2个常用归档版本):
const PROJECT_ID = '你的项目ID'; const KEEP_VERSION_IDS = [1, 100, 1748]; // 替换成你要保留的版本ID function deleteOldVersions() { const versions = AppsScript.Versions.list(PROJECT_ID).versions; if (!versions) return; versions.forEach(version => { const versionId = parseInt(version.versionNumber); if (!KEEP_VERSION_IDS.includes(versionId)) { try { AppsScript.Versions.delete(PROJECT_ID, versionId); console.log(`删除版本 ${versionId} 成功`); } catch (e) { console.log(`版本 ${versionId} 删除失败: ${e.message}`); } } }); }
- 运行脚本,第一次需要授权,授权完成后执行
deleteOldVersions,就能自动批量删除不需要的版本了。
手动批量删除(适合版本数不多的情况)
在项目设置 > Versions页面,按住Ctrl/Command键多选要删的版本,点顶部的删除按钮就行。记得先确认这些版本没关联任何在用部署。
三、保留特定版本的方案(不用重建项目)
没必要重建项目,直接在现有项目里清理更省事:
- 先把那2个常用归档版本的ID记下来,加到上面脚本的保留列表里,确保不会被误删。
- 先处理掉所有关联无用Active部署的版本:把对应部署设为Disabled,再删除版本。
- 如果一定要重建项目:在Versions页面分别打开要保留的版本,下载代码zip包,新建项目后导入这些zip,再重新配置部署即可。
内容的提问来源于stack exchange,提问作者Ricardo Barrios
相关产品推荐
相关产品推荐

