维护记录#
完成的工作#
- 同步本地仓库:
git fetch --all --prune + git pull --ff-only,从 bb91378 推进到 5d8fbc3,新增 2 个提交(80f7456 docs: 新增维护日志 2026-08-24 与文章《期望》、5d8fbc3 chore: auto-fix content) ✅ - 检查子模块
themes/PaperMod:当前 commit d376885,与远端登记一致,无需更新
遇到的问题#
scripts/dist/ 目录在 master 上含 22 个 .js 文件(约 2000+ 行),疑似 deno bundle 产物被一并提交 ⚠️ - 与仓库规范「scripts/ 只放 .ts 源文件」冲突,且 .gitignore 未屏蔽;暂未处理,等用户决策
下次建议#
- 在
.gitignore 加上 scripts/dist/,并 git rm -r --cached scripts/dist/ 清理已追踪的产物 - 考虑
scripts/dist/ 是否为某个 CI 步骤的有意产物(如 deno bundle 后给 GitHub Actions 用);若是,应改为产到 tmp/ 或 artifact 上传,不进版本控制
维护记录(追加:清理 scripts/dist/)#
完成的工作#
- 经调查确认
scripts/dist/ 不是 Deno 产物:所有文件 shebang 是 #!/usr/bin/env node,注释里教 node scripts/dist/xxx.js 跑,是早期 Node.js 时代的旧快照;整个仓库(.github/、scripts/、deno.json、AGENTS.md、README.md)零引用 scripts/dist/ 内容陈旧:缺 lib/fs.js、lib/paths.js(2026-08-27 重构才加),缺 format-markdown.test.js、git-commit-push.test.js、optimize-images.test.js- 在
.gitignore 末尾追加 scripts/dist/(附说明注释),防止 deploy.yml 的 git add -A 未来再次带入 ✅ git rm -r scripts/dist/ 一次性删除 21 个 .js(8 根 + 3 lib + 10 tests;非之前估算的 22 个),工作树与索引干净 ✅
- 只删追踪 + 加 ignore,不动历史:
git filter-repo / git filter-branch 改写历史需要额外确认(force push + 重写已发布 commit),且 git rm 已能让远端立即干净,没必要扰动共享历史 - commit message 用
chore(scripts): remove dead scripts/dist/:明确分类,避免 git-commit-push.ts 自动分类把它误归到 chore(rename)/chore(format) 之类的奇怪类别
下次建议#
- deploy.yml 的
git-commit-push.ts 是 git add -A,理论上能绕过 .gitignore 引入意外产物;当前已用 ignore 兜底,可加一个 deploy 步骤在 commit 前 git status --porcelain + 白名单校验,只允许 content/、static/、scripts/**/*.{ts,json}、themes/PaperMod、deno.*、hugo.toml、.github/workflows/* 等路径进入 commit - 如未来真需要「发布到 Node.js」的脚本产物(如 npm 包),应改用
deno compile 直接产出二进制,或在 release workflow 里产到 artifact,不进 master