Git 与 GitHub 工作流
远程仓库:origin = https://github.com/TTT-b/stremio-ai-translator。默认分支:`main`。Windows PowerShell 命令。
开始工作
- 运行
git status -sb和git fetch origin。 - 如果工作区是干净的:运行
git pull --ff-only。如果不干净,则停止并告知用户哪些文件被修改。
工作期间
- 对于任何非琐碎的改动,请在分支上工作:
git switch -c <短名称>。小的安全修复仅在用户同意下可以直接提交到main。 - 提交小而集中的改动。对于发布版本,消息格式为:
vX.Y.Z: 简短摘要;对于其他情况,使用type: 简短摘要(fix:、feat:、docs:、test:、chore:)。 - 按文件名暂存文件(
git add <文件>),绝不盲目使用git add .或-A。先检查git diff --staged。 - 绝不提交
.env、settings.json、data/、logs/、node_modules/、dist-electron/、release/、令牌或 API 密钥。如果机密已被提交,请停止并告知用户轮换它。 - 每次提交前运行
npm run check。检查失败时不要提交。
推送
- 仅在用户要求时推送。正常推送:
git push。绝不在main上使用--force。如果在个人分支上确实需要强制推送,请使用--force-with-lease并先询问。 - 发布版本:在
package.json中更新version,如果行为发生变化则更新 README/TROUBLESHOOTING,提交,然后仅在用户确认后运行git tag vX.Y.Z和git push --follow-tags。每个标签必须指向其自己的提交。
发布检查(每次发布都必须执行,不仅仅是在看起来有问题时)
npm run check通过(它包含一个测试,检查RELEASE_NOTES是否包含与package.json中版本相对应的中文和英文发布说明)。package.json中的版本高于最新的已发布标签(git tag --sort=-v:refname | Select-Object -First 1);应用内更新程序只会提供更高的版本。- 使用
npm run dist构建,并让用户先从release/安装;在发布前等待他们的确认。 - 发布后,
gh release view vX.Y.Z必须列出安装程序.exe、其.blockmap以及latest.yml。没有latest.yml,应用内的“检查更新”将找不到任何内容。 - 告知用户在前一个版本中按下“检查更新”,并确认它提供了新版本。
与笔记本电脑/手机的同步
- 桌面端是工作机器。当用户说 GitHub 已更新时:先运行
git fetch origin,显示git log --oneline HEAD..origin/main,然后运行git pull --ff-only。如果无法快速前进,请显示分叉情况,并在合并或变基前询问用户。
推荐的 GitHub 设置(用户在网页界面中设置)
仓库设置 -> 分支:保护 main(要求 Pull Request、阻止强制推送、阻止删除)。设置 -> 代码安全:启用带有推送保护的密钥扫描、Dependabot 警报和 Dependabot 安全更新。设置 -> 常规:启用“自动删除头部分支”。账户:启用双重身份验证。