Git- und GitHub-Workflow
Remote: origin = https://github.com/TTT-b/stremio-ai-translator. Standard-Branch: main. Windows PowerShell-Befehle.
Arbeitsbeginn
git status -sbundgit fetch origin.- Wenn der Arbeitsbaum sauber ist:
git pull --ff-only. Falls nicht sauber, abbrechen und dem Benutzer mitteilen, was geändert ist.
Während der Arbeit
- Für alles nicht Triviale auf einem Branch arbeiten:
git switch -c <kurzer-name>. Kleine sichere Korrekturen dürfen nur dann direkt aufmaingehen, wenn der Benutzer dies sagt. - Kleine, fokussierte Commits. Nachricht:
vX.Y.Z: kurze Zusammenfassungfür Releases, sonsttyp: kurze Zusammenfassung(fix:,feat:,docs:,test:,chore:). - Dateien einzeln stagegen (
git add <datei>), niemals blindgit add .oder-A. Zuerstgit diff --stagedprüfen. - Niemals
.env,settings.json,data/,logs/,node_modules/,dist-electron/,release/, Tokens oder API-Schlüssel committen. Falls ein Secret committet wurde, stoppen und den Benutzer bitten, es zu rotieren. - Vor jedem Commit
npm run checkausführen. Nicht committen, wenn der Check fehlschlägt.
Pushen
- Nur pushen, wenn der Benutzer darum bittet. Normaler Push:
git push. Niemals--forceaufmain. Falls auf einem persönlichen Branch wirklich ein Force-Push nötig sein sollte,--force-with-leaseverwenden und vorher fragen. - Releases:
versioninpackage.jsonerhöhen, ggf. README/TROUBLESHOOTING aktualisieren (wenn sich das Verhalten geändert hat), committen, dann mitgit tag vX.Y.Ztaggen undgit push --follow-tagsnur nach Bestätigung des Benutzers ausführen. Jeder Tag muss auf einen eigenen Commit zeigen.
Release-Prüfungen (jedes Release, nicht nur bei Auffälligkeiten)
npm run checkist erfolgreich (beinhaltet den Test, dassRELEASE_NOTESfür die inpackage.jsonangegebene Version sowohl he- als auch en-Notizen enthält).- Die Version in
package.jsonist höher als der aktuellste veröffentlichte Tag (git tag --sort=-v:refname | Select-Object -First 1); der In-App-Updater bietet nur höhere Versionen an. - Mit
npm run distbauen und den Benutzer bitten, das Programm zunächst ausrelease/zu installieren; auf sein OK warten, bevor veröffentlicht wird. - Nach der Veröffentlichung muss
gh release view vX.Y.Zden Installer.exe, dessen.blockmapund dielatest.ymlauflisten. Ohnelatest.ymlfindet die In-App-„Auf Updates prüfen“-Funktion nichts. - Den Benutzer bitten, in der vorherigen Version „Auf Updates prüfen“ zu drücken und zu bestätigen, dass die neue Version angeboten wird.
Synchronisation mit Laptop/Telefon
- Der Desktop ist die Arbeitsmaschine. Wenn der Benutzer sagt, GitHub sei aktualisiert:
git fetch origin, zeigegit log --oneline HEAD..origin/main, danngit pull --ff-only. Wenn kein Fast-Forward möglich ist, zeige die Abweichung und frage vor Merge oder Rebase.
Empfohlene GitHub-Einstellungen (vom Benutzer im Web-UI gesetzt)
Repo-Einstellungen -> Branches: main schützen (Pull-Request erforderlich, Force-Pushes blockieren, Löschen blockieren). Einstellungen -> Codesicherheit: Secret Scanning mit Push-Schutz aktivieren, Dependabot-Alarme und Dependabot-Sicherheitsupdates aktivieren. Einstellungen -> Allgemein: „Automatisch Head-Branches löschen“ aktivieren. Konto: Zwei-Faktor-Authentifizierung einschalten.