Workflow Git·

Użyj GitHub Desktop, aby uprościć aktualizacje FiveM i dostrzec każdą zmianę

Przewodnik bez użycia linii poleceń dla właścicieli serwerów FiveM: użyj GitHub Desktop, aby zobaczyć dokładnie, co zmieniło się w aktualizacji, zachować własne edycje konfiguracji i błyskawicznie wrócić do poprzedniej wersji, gdy coś przestanie działać.

Wprowadzenie

Każdy właściciel serwera zna to uczucie. Pojawia się nowa wersja zasobu, changelog mówi: "podmień folder /config/framework", a Ty zamierasz — ponieważ spędziłeś godziny na dostrajaniu tych plików i nie masz pojęcia, czego tak naprawdę dotyczy aktualizacja. Czy nadpiszesz je i stracisz swoją pracę? Pominiesz folder i zaryzykujesz uszkodzenie skryptu? Będziesz kopiować linie w jedną i drugą stronę ręcznie, mając nadzieję, że o niczym nie zapomniałeś?

Istnieje znacznie lepszy sposób — i nie musisz wpisywać ani jednej komendy. Dzięki darmowej aplikacji GitHub Desktop, możesz dokładnie zobaczyć, co zmieniło się w dowolnej aktualizacji, zachować swoje własne modyfikacje w bezpieczeństwie oraz wrócić do poprzedniej wersji w kilka sekund, a wszystko to za pomocą prostego interfejsu typu kliknij i użyj.

Co to jest Git i czym jest GitHub Desktop?

Git to system kontroli wersji — pomyśl o tym jak o nieograniczonej, idealnej historii wycofywania zmian dla folderu. Za każdym razem, gdy zapiszesz migawkę (nazywaną commit), rejestrowany jest dokładny stan każdego pliku. Później możesz porównać dowolne dwie migawki linia po linii, przywrócić wcześniejszy stan lub połączyć zmiany ze sobą.

GitHub Desktop to darmowa, wizualna aplikacja, która ukrywa Git pod przyjaznymi przyciskami. Żadnego czarnego terminala, żadnych komend do zapamiętania — tylko przejrzyste okno, które pokazuje, co uległo zmianie, i pozwala na commit, wycofanie zmian oraz scalanie za pomocą jednego kliknięcia.

Dla serwera FiveM, folder, który śledzisz, to Twój katalog resources (lub pojedynczy skrypt wewnątrz niego). Git zamienia "Myślę, że coś tu zmieniłem kilka tygodni temu" w "pokaż mi dokładnie, co zmieniło się między zeszłym miesiącem a dzisiaj."

GitHub Desktop działa całkowicie lokalnie. Nie musisz przesyłać niczego do internetu — każda funkcja w tym przewodniku działa offline na Twoim własnym komputerze lub VPS. Wolisz inną aplikację? Sourcetree, GitKraken, Fork oraz wbudowany panel Source Control w VS Code wykonują tę samą pracę; poniższe pojęcia można bezpośrednio przenieść.

Dlaczego jest to idealne do aktualizacji zasobów

Aktualizacja skryptu w tradycyjny sposób oznacza pracę po omacku. Git daje Ci trzy supermoce:

  1. Wykrywanie zmian — po wrzuceniu nowej wersji GitHub Desktop wyróżnia każdy zmieniony plik i każdą zmienioną linię. Changelog mówi Ci, które foldery należy zastąpić; Git pokazuje Ci, co faktycznie się zmieniło, dzięki czemu możesz mu zaufać.
  2. Bezpieczna personalizacja — Twoje edycje są zapisane w commitach. Gdy aktualizacja od dostawcy dotyczy tego samego pliku, Git może scalić oba zestawy zmian, zachowując Twoje oraz ich.
  3. Błyskawiczne wycofanie zmian — jeśli aktualizacja zepsuje Twój serwer, dzieli Cię tylko jedno kliknięcie od dokładnego stanu, który miałeś pięć minut temu. Bez paniki typu "gdzie ja położyłem ten backup".
To idealnie współgra z zasobami chronionymi przez escrow, takimi jak Sky-Systems. Zaszyfrowany folder source/ nigdy nie zmienia się po Twojej stronie, podczas gdy wszystko, co faktycznie edytujesz, znajduje się w folderze tekstowym config/. Git świetnie śledzi config/ — czyli dokładnie tam, gdzie Twoje modyfikacje spotykają się z aktualizacjami dostawcy.

Jednorazowa konfiguracja z GitHub Desktop

Robisz to tylko raz na serwer.

Zainstaluj GitHub Desktop

Pobierz i zainstaluj go ze strony desktop.github.com. Możesz pominąć lub zamknąć okno logowania — konto online jest potrzebne tylko wtedy, gdy kiedykolwiek będziesz chciał wykonać kopię zapasową na GitHub, czego ten przewodnik nie wymaga.

Dodaj swój folder zasobów

Na pasku menu kliknij File → Add local repository, następnie Choose… i wybierz swój folder resources.

GitHub Desktop zauważy, że nie jest on jeszcze śledzony i wyświetli: "This directory does not appear to be a Git repository." Kliknij oferowany link "create a repository". Na następnym ekranie pozostaw ustawienia domyślne i kliknij Create repository.

Chroń swoje sekrety

FiveM serwer przechowuje wrażliwe dane, które nigdy nie mogą zostać zapisane w Twojej historii. W GitHub Desktop otwórz Repository → Repository settings → Ignored files i dodaj reguły takie jak te:

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

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

Możesz również kliknąć prawym przyciskiem myszy na dowolny plik na liście Changes i wybrać Ignore file (lub Ignore all files of this type) — GitHub Desktop doda to za Ciebie do .gitignore.

Nigdy nie zapisuj danych uwierzytelniających w commitach. Hasła do bazy danych, Twoje sv_licenseKey, sekrety Tebex, tokeny Discord i adresy URL webhooków muszą pozostać poza Git. Dodaj je do listy ignorowanych przed swoim pierwszym commitem — gdy coś zostanie zatwierdzone, pozostaje w historii.

Zrób swój pierwszy snapshot

Przełącz się na zakładkę Changes (zmiany; lewy pasek boczny). Każdy plik pojawia się na liście. W dolnym lewym polu Summary (podsumowanie) wpisz coś takiego jak Baseline: working server before updates, a następnie kliknij Commit to main.

Gotowe. Masz teraz siatkę bezpieczeństwa pod całym swoim serwerem.

Nie publikuj swoich płatnych zasobów. Jeśli GitHub Desktop kiedykolwiek zaproponuje niebieski przycisk "Publish repository", nie klikaj go w przypadku jakiegokolwiek licencjonowanego skryptu lub skryptu chronionego przez escrow. Przesyłanie tych plików do publicznego repozytorium narusza licencję i wystawia płatną zawartość na widok publiczny. Zachowaj repozytorium tylko lokalnie.

Przepływ pracy przy aktualizacji

To rutyna, którą powtarzasz przy każdej aktualizacji. Zajmuje to około minuty.

Zatwierdź swój obecny stan

Otwórz GitHub Desktop i sprawdź zakładkę Changes (zmiany). Jeśli coś widnieje na liście, najpierw zatwierdź to z podsumowaniem takim jak Pre-update snapshot, aby aktualizacja była wyraźnie widoczna. Jeśli lista jest pusta, jesteś gotowy.

Wgraj nową wersję

Zatrzymaj serwer, a następnie wypakuj nową wersję zasobu na stare pliki, nadpisując je — dokładnie tak, jak instruuje changelog (na przykład "zamień folder /config/framework"). Nie martw się o utratę czegokolwiek; Twój poprzedni stan jest bezpiecznie zatwierdzony.

Zobacz dokładnie, co się zmieniło

Wróć do GitHub Desktop i otwórz kartę Changes. To magiczny moment: każdy plik, którego dotknęła aktualizacja, jest wymieniony, a kliknięcie w jeden z nich pokazuje jego zmiany linia po linii — usunięte linie na czerwono, dodane linie na zielono.

Możesz teraz przeczytać dokładnie, co zrobiła aktualizacja — nowe opcje konfiguracji, zmienione wartości domyślne, zmienione klucze — zamiast zgadywać.

Przejrzyj listę plików i porównaj ją z changelogiem. Jeśli changelog mówi, że zmieniły się tylko config/framework i config/banking, to te foldery powinny być widoczne tutaj. Wszystko, co nieoczekiwane, warto dokładnie sprawdzić przed zatwierdzeniem zmian.

Dopasuj swoje własne ustawienia

Jeśli aktualizacja nadpisała plik, który personalizowałeś, diff pokaże twoje ustawienia na czerwono (usunięte), a domyślne ustawienia dostawcy na zielono (dodane). Otwórz ten plik w swoim edytorze, ponownie wprowadź swoje wartości — diff pokazuje dokładnie, które linie — i zapisz. GitHub Desktop aktualizuje porównanie na żywo podczas pisania.

Aby uzyskać pełną automatyczną synchronizację, sprawdź Pro Tip poniżej.

Zatwierdź aktualizację

Gdy wszystko wygląda poprawnie i serwer uruchamia się bez błędów, wróć do karty Changes, wpisz podsumowanie, np. Update sky_base to 1.21.0, i kliknij Commit to main.

Masz teraz opisany punkt kontrolny, do którego możesz zawsze wrócić.


Cofanie zmian, gdy coś nie działa

Aktualizacja sprawia problemy? Zachowaj spokój — GitHub Desktop daje Ci kilka opcji, od łagodnych po radykalne.

Cofnij niezatwierdzone zmiany. W karcie Changes zaznacz pliki (lub wszystkie), kliknij prawym przyciskiem myszy i wybierz Discard Changes / Discard All Changes. To przywróci je do stanu z Twojego ostatniego zatwierdzenia.

Wróć do wcześniejszej migawki. Otwórz kartę History (historia) w lewym pasku bocznym, aby zobaczyć każdą wykonaną przez Ciebie migawkę:

  • Aby bezpiecznie cofnąć aktualizację, zachowując czystą historię, kliknij prawym przyciskiem myszy na błędny commit i wybierz Revert Changes in Commit. Tworzy to nowy commit typu „cofnij” — nic nie zostaje utracone.
  • Aby w pełni cofnąć się do wcześniejszego stanu, kliknij prawym przyciskiem myszy na wybraną migawkę i wybierz Reset to commit.
Reset to commit cofa Twój projekt do tej migawki. Najpierw zatwierdź (commit) lub odłóż (stash) wszystko, co chcesz zachować. W razie wątpliwości wybierz Revert Changes in Commit — jest to opcja niedestrukcyjna.

Tymczasowo odłóż swoje zmiany — przydatne do testowania aktualizacji na czystym polu, a następnie przywrócenia swojej pracy. Kliknij prawym przyciskiem myszy na nagłówek Changed files i wybierz Stash All Changes. Aby je odzyskać, wybierz Stashed Changes w pasku bocznym i kliknij Restore.

GitHub Desktop przechowuje jedną migawkę (stash) naraz — ponowne odłożenie zastępuje poprzednią. Używaj tego do krótkich, tymczasowych przystanków, a commitów do wszystkiego, co chcesz zachować.

Pro Tip: Automatyczne łączenie aktualizacji dostawców

Masz dość ręcznego ponownego nakładania edycji konfiguracji po każdej aktualizacji? GitHub Desktop może zrobić to za Ciebie, korzystając z trójstronnego scalania (three-way merge).

Idea: zachowaj jedną gałąź z czystymi wydaniami dostawców, a drugą z Twoimi edycjami na górze.

Utwórz gałąź dostawcy (Vendor Branch)

Kliknij rozwijane menu Current Branch na górze, następnie New Branch, a następnie nazwij ją vendor. Ta gałąź będzie zawierać wyłącznie nienaruszone pliki dostawcy.

Rejestruj każde wydanie w gałęzi dostawcy

Gdy pojawi się nowa wersja, przełącz się na gałąź vendor (rozwijana lista Current Branch), wypakuj niezmodyfikowane pliki nowego wydania na istniejące pliki, a następnie zatwierdź je z podsumowaniem takim jak Vendor sky_base 1.21.0.

Połącz aktualizację ze swoimi edycjami

Przełącz się z powrotem na swoją gałąź main (rozwijana lista Current Branch). Następnie otwórz Branch → Merge into current branch…, wybierz vendor, a następnie kliknij merge.

GitHub Desktop automatycznie łączy zmiany dostawcy z Twoimi personalizacjami. Program wstrzymuje pracę tylko wtedy, gdy aktualizacja zmienia dokładnie te same linie, które spersonalizowałeś — i wyświetla czytelny ekran, aby rozwiązać te kilka miejsc. W pozostałych miejscach oba zestawy zmian zostają zachowane dla Ciebie.

Jest to ta sama technika, której profesjonalne zespoły używają do śledzenia bibliotek upstream bez utraty lokalnych zmian — i działa równie dobrze w przypadku Twojego serwera.


Wolisz linię poleceń?

Jeśli czujesz się swobodnie w terminalu, cały powyższy proces można przełożyć na kilka poleceń:

# 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

Dobre praktyki

  • Zatwierdzaj zmiany przed każdą aktualizacją. Migawka zajmuje dwie sekundy, a oszczędza godziny pracy.
  • Pisz jasne podsumowania. Update sky_base to 1.21.0 wygrywa z stuff, gdy przeglądasz historię pół roku później.
  • Ignoruj poufne dane. Dane uwierzytelniające nigdy nie powinny znajdować się w historii wersji.
  • Zatwierdzaj zmiany po czystym uruchomieniem, a nie przed nim. Oznaczaj migawkę jako „dobrą” dopiero wtedy, gdy serwer faktycznie działa.
  • Śledź cały swój folder resources w jednym repozytorium. W ten sposób pojedynczy rollback może przywrócić stan po błędnej aktualizacji dowolnego skryptu.
  • Trzymaj pliki lokalnie. Nigdy nie publikuj zasobów objętych licencją lub ochroną escrow w publicznym repozytorium.

Podsumowanie

Aktualizacja serwera FiveM nie musi już oznaczać zgadywania, utraconych personalizacji i gorączkowego szukania kopii zapasowych. Dzięki jednorazowej konfiguracji w GitHub Desktop i minutowej rutynie możesz widzieć każdą zmianę wprowadzaną przez aktualizację, zachować własne edycje w nienaruszonym stanie oraz natychmiast cofnąć każdy błąd — wszystko to bez wpisywania ani jednej komendy.

Następnym razem, gdy w changelogu zobaczysz instrukcję zastąpienia folderu, zrobisz to z pewnością — ponieważ GitHub Desktop za każdym razem pokaże Ci dokładnie, co uległo zmianie.