Git-Workflow·

Nutze GitHub Desktop, um FiveM-Updates zu vereinfachen und jede Änderung zu erkennen

Ein Leitfaden ohne Kommandozeile für FiveM-Server-Besitzer: Nutze GitHub Desktop, um genau zu sehen, was sich in einem Update geändert hat, behalte deine eigenen Konfigurationsänderungen bei und mache sofort einen Rollback, wenn etwas kaputt geht.

Einführung

Jeder Server-Besitzer kennt das Gefühl. Eine neue Ressourcen-Version erscheint, im Changelog steht "Ersetze den /config/framework-Ordner", und du erstarrst – weil du Stunden damit verbracht hast, diese Dateien zu optimieren, und keine Ahnung hast, was das Update tatsächlich verändert hat. Überschreibst du alles und verlierst deine Arbeit? Überspringst du den Ordner und riskierst, dass das Skript kaputt geht? Kopierst du Zeilen manuell hin und her und hoffst, dass du nichts übersehen hast?

Es gibt einen viel besseren Weg – und du musst keinen einzigen Befehl eingeben. Mit einer kostenlosen App namens GitHub Desktop kannst du genau sehen, was sich in jedem Update geändert hat, deine eigenen Anpassungen sicher aufbewahren, und in Sekunden zurücksetzen, und das alles über eine einfache Point-and-Click-Oberfläche.

Was ist Git und was ist GitHub Desktop?

Git ist ein Versionskontrollsystem – stell es dir wie eine unbegrenzte, perfekte Rückgängig-Historie für einen Ordner vor. Jedes Mal, wenn du einen Snapshot speicherst (einen sogenannten Commit), wird der exakte Zustand jeder Datei aufgezeichnet. Später kannst du zwei beliebige Snapshots Zeile für Zeile vergleichen, einen früheren Zustand wiederherstellen oder Änderungen zusammenführen.

GitHub Desktop ist eine kostenlose, visuelle App, die Git hinter benutzerfreundlichen Schaltflächen verbirgt. Kein schwarzes Terminal, keine Befehle zum Auswendiglernen – nur ein klares Fenster, das dir zeigt, was sich geändert hat, und es dir ermöglicht, mit einem Klick zu committen, rückgängig zu machen und zu mergen.

Für einen FiveM Server ist der Ordner, den du trackst, dein resources Verzeichnis (oder ein einzelnes Skript darin). Git verwandelt "Ich glaube, ich habe hier vor ein paar Wochen etwas geändert" in "Zeig mir genau, was sich zwischen letztem Monat und heute geändert hat."

GitHub Desktop arbeitet komplett lokal. Du musst nichts ins Internet hochladen – jede Funktion in diesem Leitfaden läuft offline auf deinem eigenen Rechner oder VPS. Bevorzugst du eine andere App? Sourcetree, GitKraken, Fork und das integrierte Source Control Panel in VS Code erledigen alle die gleiche Arbeit; die unten genannten Konzepte lassen sich direkt übertragen.

Warum das perfekt für Resource-Updates ist

Ein Skript auf die traditionelle Weise zu aktualisieren bedeutet, blind zu arbeiten. Git gibt dir drei Superkräfte:

  1. Änderungserkennung — nachdem du eine neue Version eingespielt hast, hebt GitHub Desktop jede geänderte Datei und jede geänderte Zeile hervor. Das Changelog sagt dir, welche Ordner zu ersetzen sind; Git zeigt dir, was sich tatsächlich geändert hat, damit du darauf vertrauen kannst.
  2. Sichere Anpassung — deine Änderungen leben in Commits. Wenn ein Vendor-Update dieselbe Datei berührt, kann Git die beiden Änderungssätze mergen, wobei deine und seine erhalten bleiben.
  3. Sofortiges Rollback — wenn ein Update deinen Server lahmlegt, bist du nur einen Klick von dem exakten Zustand entfernt, den du vor fünf Minuten hattest. Keine "Wo habe ich das Backup hingelegt"-Panik.
Dies passt perfekt zu Escrow-geschützten Ressourcen wie Sky-Systems. Der verschlüsselte source/-Ordner ändert sich auf deiner Seite niemals, während alles, was du tatsächlich bearbeitest, im Klartext-Ordner config/ liegt. Git verfolgt config/ hervorragend – genau dort, wo deine Anpassungen und die Updates des Anbieters aufeinandertreffen.

Einmalige Einrichtung mit GitHub Desktop

Du machst das nur einmal pro Server.

GitHub Desktop installieren

Lade es von desktop.github.com herunter und installiere es. Du kannst die Anmeldeaufforderung überspringen oder schließen – ein Online-Konto wird nur benötigt, wenn du jemals ein Backup auf GitHub erstellen möchtest, was dieser Guide nicht erfordert.

Füge deinen Ressourcen-Ordner hinzu

Klicke in der Menüleiste auf File → Add local repository (Datei → Lokales Repository hinzufügen), dann auf Choose… (Auswählen…) und wähle deinen resources-Ordner aus.

GitHub Desktop wird bemerken, dass es noch nicht verfolgt wird, und anzeigt: "This directory does not appear to be a Git repository." (Dieses Verzeichnis scheint kein Git-Repository zu sein.) Klicke auf den angebotenen Link "create a repository" (Repository erstellen). Lass im nächsten Bildschirm die Standardeinstellungen unverändert und klicke auf Create repository (Repository erstellen).

Schütze deine Geheimnisse

Ein FiveM-Server enthält sensible Daten, die niemals in deiner Historie gespeichert werden dürfen. Öffne in GitHub Desktop Repository → Repository settings → Ignored files (Repository → Repository-Einstellungen → Ignorierte Dateien) und füge Regeln wie diese hinzu:

# Never track secrets
**/*.env
**/secrets.lua
server.cfg

# Caches, logs, build output
**/cache/
**/logs/
**/.DS_Store

Du kannst auch mit der rechten Maustaste auf eine beliebige Datei in der Changes-Liste (Änderungen) klicken und Ignore file (Datei ignorieren) (oder Alle Dateien dieses Typs ignorieren) wählen – GitHub Desktop fügt dies für dich in .gitignore hinzu.

Gib niemals Anmeldedaten preis. Datenbankpasswörter, dein sv_licenseKey, Tebex-Geheimnisse, Discord-Token und Webhook-URLs müssen außerhalb von Git bleiben. Füge sie der Ignore-Liste hinzu, bevor du deinen ersten Commit ausführst — sobald etwas committet wurde, bleibt es in der Historie gespeichert.

Erstelle deinen ersten Snapshot

Wechsle zum Tab Änderungen (linke Seitenleiste). Jede Datei erscheint in der Liste. Gib in der Box Zusammenfassung unten links etwas wie Baseline: working server before updates ein, und klicke dann auf Commit to main.

Fertig. Du hast nun ein Sicherheitsnetz unter deinem gesamten Server.

Veröffentliche deine kostenpflichtigen Ressourcen nicht. Wenn GitHub Desktop jemals einen blauen Button "Publish repository" (Repository veröffentlichen) anzeigt, lass ihn bei allen lizenzierten oder durch Escrow geschützten Skripten unberührt. Das Hochladen dieser Dateien in ein öffentliches Repository verstößt gegen die Lizenz und legt kostenpflichtige Inhalte offen. Halte das Repository nur lokal.

Der Update-Workflow

Dies ist die Routine, die du bei jedem Update wiederholst. Es dauert etwa eine Minute.

Commit deinen aktuellen Zustand

Öffne GitHub Desktop und prüfe den Tab Änderungen. Wenn etwas aufgelistet ist, committe es zuerst mit einer Zusammenfassung wie Pre-update snapshot, damit das Update sauber hervorsticht. Wenn die Liste leer ist, bist du bereit.

Installiere die neue Version

Stoppe deinen Server und extrahiere das neue Ressourcen-Release über die alten Dateien, wobei du sie überschreibst — genau so, wie es im Changelog angewiesen wird (zum Beispiel: „ersetze den /config/framework Ordner“). Mach dir keine Sorgen, etwas zu verlieren; dein vorheriger Zustand ist sicher committet.

Sieh genau, was sich geändert hat

Kehre zu GitHub Desktop zurück und öffne den Tab Changes. Dies ist der entscheidende Moment: Jede Datei, die das Update geändert hat, wird aufgelistet, und ein Klick auf eine Datei zeigt ihre Änderungen Zeile für Zeile — entfernte Zeilen in Rot, hinzugefügte Zeilen in Grün.

Du kannst nun lesen, was das Update genau gemacht hat — neue Konfigurationsoptionen, geänderte Standardwerte, umbenannte Keys — anstatt zu raten.

Gehe die Dateiliste durch und vergleiche sie mit dem Changelog. Wenn im Changelog steht, dass sich nur config/framework und config/banking geändert haben, sollten dies die Ordner sein, die du hier siehst. Alles Unerwartete ist einen genaueren Blick wert, bevor du den Commit ausführst.

Deine Anpassungen abgleichen

Wenn das Update eine Datei überschrieben hat, die du angepasst hast, zeigt der Diff deine Einstellungen in Rot (entfernt) und die Standardwerte des Anbieters in Grün (hinzugefügt) an. Öffne diese Datei in deinem Editor, wende deine Werte erneut an — der Diff zeigt genau, welche Zeilen das sind — und speichere. GitHub Desktop aktualisiert den Vergleich live, während du tippst.

Für einen vollautomatischen Abgleich siehe den Pro-Tipp unten.

Das Update committen

Sobald alles korrekt aussieht und dein Server sauber hochfährt, gehe zurück zum Tab Changes, gib eine Zusammenfassung wie Update sky_base to 1.21.0 ein und klicke auf Commit to main.

Du hast nun einen beschrifteten Checkpoint, zu dem du jederzeit zurückkehren kannst.


Rollback, wenn etwas kaputt geht

Ein Update verhält sich fehlerhaft? Bleib ruhig — GitHub Desktop bietet dir mehrere Optionen, von sanft bis hin zur totalen Rücksetzung.

Nicht committe Änderungen rückgängig machen. Wähle im Tab Changes die Dateien (oder alle) aus, mache einen Rechtsklick und wähle Changes verwerfen / Alle Änderungen verwerfen. Dies stellt sie auf deinen letzten Commit wieder her.

Gehe zu einem früheren Snapshot zurück. Öffne den Tab History (Verlauf) in der linken Seitenleiste, um jeden von dir erstellten Snapshot zu sehen:

  • Um ein Update sicher rückgängig zu machen, während die Historie sauber bleibt, klicke mit der rechten Maustaste auf den fehlerhaften Commit und wähle Revert Changes in Commit (Änderungen im Commit rückgängig machen). Dadurch wird ein neuer „Undo“-Commit erstellt – nichts geht verloren.
  • Um vollständig zu einem früheren Zustand zurückzuspulen, klicke mit der rechten Maustaste auf den gewünschten Snapshot und wähle Reset to commit (Auf Commit zurücksetzen).
Reset to commit (Auf Commit zurücksetzen) setzt dein Projekt auf diesen Snapshot zurück. Committe oder stashe alles, was du behalten möchtest, vorher. Im Zweifelsfall ist Revert Changes in Commit (Änderungen im Commit rückgängig machen) die bessere Wahl – es ist die zerstörungsfreie Option.

Lege deine Änderungen temporär ab – praktisch, um ein Update mit einem sauberen Zustand zu testen und deine Arbeit danach wiederherzustellen. Klicke mit der rechten Maustaste auf die Überschrift Changed files (Geänderte Dateien) und wähle Stash All Changes (Alle Änderungen stashen). Um sie zurückzuholen, wähle Stashed Changes (Gestashte Änderungen) in der Seitenleiste und klicke auf Restore (Wiederherstellen).

GitHub Desktop bewahrt immer nur einen Stash gleichzeitig auf – ein erneutes Stashen ersetzt den vorherigen. Nutze dies für kurze, temporäre Umwege und nutze Commits für alles, was du dauerhaft behalten möchtest.

Profi-Tipp: Automatisches Mergen von Vendor-Updates

Hast du keine Lust mehr, deine Konfigurationsänderungen nach jedem Update manuell neu anzuwenden? GitHub Desktop kann das für dich mithilfe eines Three-Way-Merges erledigen.

Die Idee: Behalte einen Branch mit unveränderten Vendor-Releases und einen anderen mit deinen Anpassungen darüber.

Erstelle einen Vendor-Branch

Klicke oben auf das Dropdown-Menü Aktueller Branch, dann auf Neuer Branch und nenne ihn vendor. Dieser Branch wird ausschließlich unveränderte Dateien des Vendors enthalten.

Jede Veröffentlichung im Vendor-Branch protokollieren

Wenn eine neue Version erscheint, wechsle in den vendor-Branch (Dropdown-Menü „Current Branch“), entpacke die unveränderten Release-Dateien darüber und committe sie mit einer Zusammenfassung wie Vendor sky_base 1.21.0.

Das Update in deine Änderungen mergen

Wechsle zurück in deinen main-Branch (Dropdown-Menü „Current Branch“). Öffne dann Branch → Merge into current branch…, wähle vendor aus und klicke auf Merge.

GitHub Desktop kombiniert die Änderungen des Vendors automatisch mit deinen Anpassungen. Es hält nur dann an, wenn ein Update exakt dieselben Zeilen ändert, die du angepasst hast – und zeigt dann einen übersichtlichen Bildschirm an, um diese wenigen Stellen zu lösen. An allen anderen Stellen werden beide Änderungssätze für dich beibehalten.

Dies ist dieselbe Technik, die professionelle Teams nutzen, um Upstream-Libraries zu verfolgen, ohne lokale Änderungen zu verlieren – und sie funktioniert genauso gut für deinen Server.


Bevorzugst du die Kommandozeile?

Wenn du dich im Terminal wohlfühlst, lässt sich der gesamte obige Workflow auf eine Handvoll Befehle reduzieren:

# One-time setup (run inside your resources folder)
git init
git add .
git commit -m "Baseline: working server before updates"

# Each update
git add . && git commit -m "Pre-update snapshot"   # snapshot first
# ...drop in the new release, overwriting files...
git status            # which files changed
git diff --stat       # a compact per-file summary
git diff              # full line-by-line changes
git add . && git commit -m "Update sky_base to 1.21.0"

# Rolling back
git restore <file>    # undo changes to one file
git restore .         # undo all uncommitted changes
git log --oneline     # find a snapshot
git reset --hard <id> # rewind to it (destructive)
git stash / git stash pop   # shelve and restore temporarily

Best Practices

  • Commiere vor jedem Update. Ein Snapshot dauert zwei Sekunden und spart Stunden.
  • Schreibe klare Zusammenfassungen. Update sky_base to 1.21.0 schlägt stuff, wenn du sechs Monate später den Verlauf scannst.
  • Halte Secrets ignoriert. Zugangsdaten gehören niemals in die Versionshistorie.
  • Commiere nach einem sauberen Boot, nicht davor. Kennzeichne einen Snapshot erst dann als „gut“, wenn der Server tatsächlich läuft.
  • Verfolge deinen gesamten resources-Ordner in einem Repository. Auf diese Weise kann ein einzelner Rollback ein fehlerhaftes Update bei jedem Script beheben.
  • Halte es lokal. Veröffentliche niemals lizenzierte oder durch Escrow geschützte Ressourcen in einem öffentlichen Repository.

Fazit

Das Aktualisieren eines FiveM Servers muss nicht länger Raten, verlorene Anpassungen und hektische Backupsuche bedeuten. Mit einem einmaligen GitHub Desktop Setup und einer einminütigen Routine kannst du jede Änderung, die ein Update vornimmt, sehen, deine eigenen Bearbeitungen unverändert behalten, und jeden Fehler sofort rückgängig machen — und das alles, ohne auch nur einen einzigen Befehl einzutippen.

Wenn dir das nächste Mal ein Changelog sagt, dass du einen Ordner ersetzen musst, wirst du es mit Zuversicht tun — denn GitHub Desktop wird dir jedes Mal genau zeigen, was sich geändert hat.