Git-workflow·

Gebruik GitHub Desktop om FiveMupdates te vereenvoudigen en elke wijziging te spotten

Een gids zonder opdrachtregel voor FiveMservereigenaren: gebruik GitHub Desktop om precies te zien wat er in een update is veranderd, behoud je eigen config-wijzigingen en rol direct terug wanneer er iets kapot gaat.

Introductie

Elke servereigenaar kent het gevoel. Er verschijnt een nieuwe versie van een resource, de changelog zegt "vervang de /config/frameworkmap", en je bevriest — omdat je uren hebt besteed aan het afstellen van die bestanden en je geen idee hebt wat de update daadwerkelijk heeft aangeraakt. Overschrijf je en verlies je werk? Sla je de map over en loop je het risico dat het script kapot gaat? Kopieer je regels handmatig heen en weer en hoop je dat je niets bent vergeten?

Er is een veel betere manier — en je hoeft geen enkel commando aan te raken. Met een gratis app genaamd GitHub Desktop kun je precies zien wat er in elke update is veranderd, je eigen aanpassingen veilig houden, en binnen enkele seconden terugrollen, allemaal via een eenvoudige point-and-click interface.

Wat is Git, en wat is GitHub Desktop?

Git is een versiebeheersysteem — zie het als een onbeperkte, perfecte ongedaanmaken-geschiedenis voor een map. Elke keer dat je een snapshot opslaat (een commit genoemd), legt het de exacte staat van elk bestand vast. Later kun je elke twee snapshots regel voor regel vergelijken, een eerdere staat herstellen of wijzigingen samenvoegen.

GitHub Desktop is een gratis, visuele app die Git achter vriendelijke knoppen plaatst. Geen zwart terminalvenster, geen commando's om te onthouden — alleen een duidelijk venster dat laat zien wat er is veranderd en waarmee je met één klik kunt committen, ongedaan kunt maken en kunt mergen.

Voor een FiveM server is de map die je bijhoudt je resources directory (of een enkel script daarin). Git verandert "Ik denk dat ik hier een paar weken geleden iets heb veranderd" in "laat me precies zien wat er tussen vorige maand en vandaag is veranderd."

GitHub Desktop werkt volledig lokaal. Je hoeft niets naar het internet te uploaden — elke functie in deze gids werkt offline op je eigen machine of VPS. Liever een andere app? Sourcetree, GitKraken, Fork, en het ingebouwde Source Control paneel in VS Code doen allemaal hetzelfde werk; de onderstaande concepten zijn direct toepasbaar.

Waarom dit perfect is voor resource updates

Een script op de traditionele manier updaten betekent blind werken. Git geeft je drie superkrachten:

  1. Wijzigingsdetectie — na het toevoegen van een nieuwe versie markeert GitHub Desktop elk gewijzigd bestand en elke gewijzigde regel. Het changelog vertelt je welke mappen je moet vervangen; Git laat je wat er daadwerkelijk is veranderd zodat je het kunt vertrouwen.
  2. Veilige aanpassingen — jouw wijzigingen staan in commits. Wanneer een update van een leverancier hetzelfde bestand aanraakt, kan Git de twee sets wijzigingen mergen, waarbij jouw wijzigingen en die van hen behouden blijven.
  3. Directe rollback — als een update je server breekt, ben je één klik verwijderd van de exacte staat die je vijf minuten geleden had. Geen "waar heb ik die backup ook alweer gelaten"-paniek.
Dit sluit perfect aan bij escrow-beschermde resources zoals Sky-Systems. De versleutelde source/ map verandert nooit aan jouw kant, terwijl alles wat je daadwerkelijk bewerkt in de plaintext config/ map staat. Git houdt config/ prachtig bij — precies de plek waar jouw aanpassingen en de updates van de leverancier samenkomen.

Eenmalige installatie met GitHub Desktop

Je doet dit slechts één keer per server.

Installeer GitHub Desktop

Download en installeer het vanaf desktop.github.com. Je kunt de aanmeldingsprompt overslaan of sluiten — een online account is alleen nodig als je ooit wilt backuppen naar GitHub, wat deze gids niet vereist.

Voeg je resources-map toe

Klik in de menubalk op File → Add local repository, klik vervolgens op Choose… en selecteer je resources map.

GitHub Desktop zal merken dat deze nog niet wordt bijgehouden en toont: "This directory does not appear to be a Git repository." Klik op de link "create a repository" die wordt aangeboden. Laat op het volgende scherm de standaardinstellingen staan en klik op Create repository.

Bescherm je geheimen

Een FiveM server bevat gevoelige gegevens die nooit in je geschiedenis moeten worden opgeslagen. Open in GitHub Desktop Repository → Repository settings → Ignored files en voeg regels zoals deze toe:

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

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

Je kunt ook met de rechtermuisknop op elk bestand in de Changes lijst klikken en kiezen voor Ignore file (of Ignore all files of this type) — GitHub Desktop voegt het voor je aan .gitignore toe.

Commit nooit inloggegevens. Databasewachtwoorden, je sv_licenseKey, Tebex-geheimen, Discord-tokens en webhook-URL's moeten buiten Git blijven. Voeg ze toe aan de ignore-lijst voordat je eerste commit — zodra iets is gecommit, blijft het in de geschiedenis staan.

Maak je eerste snapshot

Ga naar het tabblad Changes (linker zijbalk). Elk bestand verschijnt in de lijst. Typ in het Summary vak linksonder iets als Baseline: working server before updates, en klik dan op Commit to main.

Klaar. Je hebt nu een vangnet onder je hele server.

Publiceer je betaalde resources niet. Als GitHub Desktop ooit een blauwe "Publish repository" knop aanbiedt, laat deze dan ongemoeid voor elk gelicenseerd of escrow-beschermd script. Het uploaden van die bestanden naar een openbare repository schendt de licentie en legt betaalde content bloot. Houd de repository alleen lokaal.

De Update Workflow

Dit is de routine die je voor elke update herhaalt. Het duurt ongeveer een minuut.

Commit je huidige status

Open GitHub Desktop en controleer het tabblad Changes. Als er iets in de lijst staat, commit dit dan eerst met een samenvatting zoals Pre-update snapshot, zodat de update duidelijk herkenbaar is. Als de lijst leeg is, ben je klaar.

Plaats de nieuwe versie

Stop je server en extraheer de nieuwe resource-release over de oude bestanden heen, waarbij je deze overschrijft — precies zoals de changelog instructeert (bijvoorbeeld: "vervang de /config/framework map"). Maak je geen zorgen over het verliezen van iets; je vorige status is veilig gecommit.

Zie precies wat er is veranderd

Keer terug naar GitHub Desktop en open het tabblad Changes. Dit is het magische moment: elk bestand dat de update heeft aangeraakt wordt vermeld, en door op een bestand te klikken zie je de wijzigingen regel voor regel — verwijderde regels in rood, toegevoegde regels in groen.

Je kunt nu precies lezen wat de update heeft gedaan — nieuwe config-opties, gewijzigde defaults, hernoemde keys — in plaats van te gokken.

Scan de bestandslijst en vergelijk deze met het changelog. Als het changelog zegt dat alleen config/framework en config/banking zijn gewijzigd, dan zouden dat de mappen moeten zijn die je hier ziet. Alles wat onverwacht is, is het waard om nauwkeuriger te bekijken voordat je commit.

Neem je eigen aanpassingen over

Als de update een bestand heeft overschreven dat jij had aangepast, toont de diff jouw instellingen in rood (verwijderd) en de defaults van de leverancier in groen (toegevoegd). Open dat bestand in je editor, pas je waarden opnieuw toe — de diff laat precies zien welke regels — en sla op. GitHub Desktop werkt de vergelijking live bij terwijl je typt.

Voor een volledig automatische reconciliatie, zie de Pro Tip hieronder.

Commit de update

Zodra alles er goed uitziet en je server schoon opstart, ga je terug naar het tabblad Changes, voer een samenvatting in zoals Update sky_base to 1.21.0, en klik op Commit to main.

Je hebt nu een gelabeld controlepunt waar je altijd naar kunt terugkeren.


Terugdraaien wanneer er iets misgaat

Gedraagt een update zich niet goed? Blijf kalm — GitHub Desktop geeft je verschillende opties, van mild tot nucleair.

Niet-gecommitteerde wijzigingen ongedaan maken. Selecteer in het tabblad Changes de bestanden (of ze allemaal), klik met de rechtermuisknop en kies Discard Changes / Discard All Changes. Dit herstelt ze naar je laatste commit.

Ga terug naar een eerdere snapshot. Open het tabblad History (geschiedenis) in de linker zijbalk om elke snapshot die je hebt gemaakt te zien:

  • Om een update veilig ongedaan te maken terwijl je een schoon overzicht behoudt, klik met de rechtermuisknop op de foutieve commit en kies Revert Changes in Commit (wijzigingen in deze commit terugdraaien). Dit maakt een nieuwe "undo" commit aan — er gaat niets verloren.
  • Om volledig terug te draaien naar een eerdere staat, klik met de rechtermuisknop op de gewenste snapshot en kies Reset to commit (terugzetten naar een commit).
Reset to commit (terugzetten naar een commit) draait je project terug naar die snapshot. Commit of stash alles wat je nog wilt behouden voordat je dit doet. Bij twijfel heeft Revert Changes in Commit (wijzigingen in deze commit terugdraaien) de voorkeur — dit is de niet-destructieve optie.

Zet je wijzigingen tijdelijk op de plank — handig om een update met een schone lei te testen en daarna je werk weer terug te halen. Klik met de rechtermuisknop op de kop Changed files (gewijzigde bestanden) en kies Stash All Changes (alle wijzigingen tijdelijk opbergen). Om ze terug te krijgen, selecteer je Stashed Changes (tijdelijk opgeborgen wijzigingen) in de zijbalk en klik je op Restore (herstellen).

GitHub Desktop houdt één stash tegelijk bij — opnieuw stashen vervangt de vorige. Gebruik dit voor korte, tijdelijke zijpaden, en gebruik commits voor alles wat je wilt behouden.

Pro Tip: Automatisch mergen van vendor-updates

Ben je het zat om na elke update je config-wijzigingen handmatig opnieuw toe te passen? GitHub Desktop kan dit voor je doen met behulp van een three-way merge.

Het idee: houd één branch met onbeschadigde vendor-releases en een andere met jouw wijzigingen daarbovenop.

Maak een Vendor Branch aan

Klik op het dropdown-menu Current Branch (huidige branch) bovenaan, kies dan New Branch (nieuwe branch) en noem deze vendor. Deze branch zal uitsluitend ongewijzigde vendor-bestanden bevatten.

Registreer elke release op de vendor branch

Wanneer er een nieuwe versie uitkomt, schakel je naar de vendor branch (Current Branch dropdown), extraheer je de ongewijzigde releasebestanden eroverheen, en commit je deze met een samenvatting zoals Vendor sky_base 1.21.0.

Merge de update in je aanpassingen

Schakel terug naar je main branch (Current Branch dropdown). Open vervolgens Branch → Merge into current branch…, kies vendor, en klik op merge.

GitHub Desktop combineert de wijzigingen van de vendor automatisch met jouw aanpassingen. Het pauzeert alleen om je te vragen wanneer een update exact dezelfde regels wijzigt die jij hebt aangepast — en het toont een duidelijk scherm om die paar punten op te lossen. Overal elders worden beide sets wijzigingen voor je behouden.

Dit is dezelfde techniek die professionele teams gebruiken om upstream libraries bij te houden zonder lokale wijzigingen te verliezen — en het werkt net zo goed voor jouw server.


Liever de command line?

Als je comfortabel bent in een terminal, komt de volledige workflow hierboven overeen met een handvol commando's:

# 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

  • Commit voor elke update. Een snapshot kost twee seconden en bespaart uren.
  • Schrijf duidelijke samenvattingen. Update sky_base to 1.21.0 verslaat stuff wanneer je zes maanden later de geschiedenis scant.
  • Houd secrets genegeerd. Inloggegevens horen nooit in de versiegeschiedenis thuis.
  • Commit na een schone boot, niet ervoor. Label een snapshot pas als "goed" wanneer de server daadwerkelijk draait.
  • Houd je hele resources map in één repository bij. Op die manier kan een enkele rollback een slechte update van elk script herstellen.
  • Houd het lokaal. Publiceer nooit gelicenseerde of met escrow beschermde resources naar een publieke repository.

Conclusie

Het updaten van een FiveM server hoeft niet langer te betekenen dat je moet gokken, maatwerk verliest of koortsachtig op zoek moet naar backups. Met een eenmalige GitHub Desktop-installatie en een routine van één minuut kun je elke wijziging die een update maakt zien, je eigen aanpassingen intact houden, en elke fout direct ongedaan maken — allemaal zonder een enkele opdracht te typen.

De volgende keer dat een changelog zegt dat je een map moet vervangen, doe je dat met vertrouwen — omdat GitHub Desktop je elke keer precies laat zien wat er is veranderd.