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: 簡短摘要,否則使用類型: 簡短摘要(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 設定(由使用者在網頁 UI 中設定)
儲存庫設定 -> 分支:保護 main(要求 Pull Request、阻止強制推送、阻止刪除)。設定 -> 程式碼安全:啟用含推送保護的密碼掃描、Dependabot 警報以及 Dependabot 安全性更新。設定 -> 一般:啟用「自動刪除頭部分支」。帳戶:開啟雙因子驗證。