استخدام GitHub Desktop لتبسيط تحديثات FiveM ورصد كل تغيير
مقدمة
كل صاحب خادم يعرف هذا الشعور. يصدر إصدار جديد من المورد، ويقول سجل التغييرات "استبدل مجلد /config/framework"، فتتوقف مكانك — لأنك قضيت ساعات في ضبط تلك الملفات وليس لديك أدنى فكرة عما لمسه التحديث فعلياً. هل تقوم بالاستبدال وتفقد عملك؟ هل تتخطى المجلد وتخاطر بتعطل السكريبت؟ هل تنسخ الأسطر ذهاباً وإياباً يدوياً وتأمل ألا تكون قد أغفلت أي شيء؟
هناك طريقة أفضل بكثير — ولا تحتاج إلى كتابة أمر واحد. باستخدام تطبيق مجاني يسمى GitHub Desktop، يمكنك رؤية ما تغير بالضبط في أي تحديث، والحفاظ على تخصيصاتك الخاصة آمنة، والتراجع في ثوانٍ، كل ذلك من خلال واجهة بسيطة تعتمد على النقر.
ما هو Git، وما هو GitHub Desktop؟
Git هو نظام للتحكم في الإصدارات — فكر فيه كأنه سجل تراجع غير محدود ومثالي لمجلد ما. في كل مرة تقوم فيها بحفظ لقطة (تسمى commit)، فإنه يسجل الحالة الدقيقة لكل ملف. لاحقاً يمكنك مقارنة أي لقطتين سطراً بسطر، أو استعادة حالة سابقة، أو دمج التغييرات معاً.
GitHub Desktop هو تطبيق مرئي ومجاني يضع Git خلف أزرار سهلة الاستخدام. لا توجد شاشة سوداء (terminal)، ولا أوامر تحتاج لحفظها — فقط نافذة واضحة تظهر لك ما الذي تغير وتسمح لك بعمل commit، وتراجع، ودمج بضغطة زر واحدة.
بالنسبة لخادم FiveM، المجلد الذي تتبعه هو دليل resources الخاص بك (أو سكربت واحد بداخله). يقوم Git بتحويل "أعتقد أنني غيرت شيئاً هنا قبل بضعة أسابيع" إلى "أرني بالضبط ما الذي تغير بين الشهر الماضي واليوم."
لماذا يعد هذا مثالياً لتحديثات الموارد (Resources)
تحديث سكربت بالطريقة التقليدية يعني العمل دون رؤية واضحة. يمنحك Git ثلاث قدرات خارقة:
- كشف التغييرات — بعد وضع إصدار جديد، يقوم GitHub Desktop بتمييز كل ملف تم تغييره وكل سطر تم تعديله. يخبرك سجل التغييرات (changelog) بأي المجلدات يجب استبدالها؛ حيث يوضح لك Git ما الذي تغير فعلياً لتتمكن من الوثوق به.
- تخصيص آمن — تعديلاتك محفوظة في الـ commits. عندما يمسس تحديث المورد (vendor update) نفس الملف، يمكن لـ Git دمج مجموعتي التغييرات، مع الحفاظ على تعديلاتك وتعديلاتهم.
- تراجع فوري — إذا تسبب تحديث في تعطل خادمك، فأنت على بُعد نقرة واحدة من الحالة الدقيقة التي كان عليها الخادم قبل خمس دقائق. لا داعي للذعر من سؤال "أين وضعت ذلك النسخة الاحتياطية".
source/ المشفر أبداً من جانبك، بينما تعيش كل الأشياء التي تقوم بتعديلها فعلياً في مجلد config/ النصي. يتتبع Git config/ بشكل رائع — وهو بالضبط المكان الذي تلتقي فيه تخصيصاتك مع تحديثات المورد.إعداد لمرة واحدة باستخدام GitHub Desktop
تقوم بهذا الأمر مرة واحدة فقط لكل خادم.
تثبيت GitHub Desktop
قم بتنزيله وتثبيته من desktop.github.com. يمكنك تخطي أو إغلاق مطالبة تسجيل الدخول — لا تحتاج إلى حساب عبر الإنترنت إلا إذا كنت ترغب في أي وقت في النسخ الاحتياطي إلى GitHub، وهو ما لا يتطلبه هذا الدليل.
إضافة مجلد الموارد الخاص بك
في شريط القائمة، انقر فوق File → Add local repository، ثم Choose… وحدد مجلد resources الخاص بك.
سيلاحظ GitHub Desktop أنه لم يتم تتبعه بعد وسيعرض: "This directory does not appear to be a Git repository." انقر فوق رابط "create a repository" الذي يعرضه. في الشاشة التالية، اترك الإعدادات الافتراضية وانقر فوق Create repository.
احمِ أسرارك
يحتوي خادم FiveM على بيانات حساسة يجب ألا أبدًا يتم حفظها في السجل الخاص بك. في GitHub Desktop، افتح Repository → Repository settings → Ignored files وأضف قواعد مثل هذه:
# Never track secrets
**/*.env
**/secrets.lua
server.cfg
# Caches, logs, build output
**/cache/
**/logs/
**/.DS_Store
يمكنك أيضًا النقر بزر الماوس الأيمن فوق أي ملف في قائمة Changes واختيار Ignore file (أو Ignore all files of this type) — سيقوم GitHub Desktop بإضافته إلى .gitignore نيابة عنك.
sv_licenseKey، وأسرار Tebex، ورموز Discord، وروابط webhook بعيدًا عن Git. أضفها إلى قائمة التجاهل قبل أول عملية commit لك — فبمجرد إدراج أي شيء في commit، سيبقى في السجل.خذ لقطتك الأولى
انتقل إلى علامة التبويب التغييرات (الشريط الجانبي الأيسر). ستظهر جميع الملفات في القائمة. في مربع الملخص الموجود في أسفل اليسار، اكتب شيئًا مثل Baseline: working server before updates، ثم انقر على Commit to main.
تم. أصبح لديك الآن شبكة أمان تحت خادمك بالكامل.
سير عمل التحديث
هذا هو الروتين الذي تكرره مع كل تحديث. يستغرق الأمر حوالي دقيقة واحدة.
أرسل حالتك الحالية (Commit)
افتح GitHub Desktop وتحقق من علامة التبويب التغييرات. إذا كان هناك أي شيء مدرج، فقم بحفظه في commit أولاً مع ملخص مثل Pre-update snapshot، لكي يبرز التحديث بشكل واضح. إذا كانت القائمة فارغة، فأنت جاهز.
ضع الإصدار الجديد
أوقف خادمك، ثم استخرج إصدار المورد الجديد فوق الملفات القديمة، مع استبدالها — تمامًا كما يوجه سجل التغييرات (على سبيل المثال، "استبدل مجلد /config/framework"). لا تقلق بشأن فقدان أي شيء؛ فحالتك السابقة محفوظة بأمان عبر عملية الإرسال (commit).
شاهد ما الذي تغير بالضبط
عد إلى GitHub Desktop وافتح علامة التبويب Changes. هذه هي اللحظة الحاسمة: سيتم إدراج كل ملف لمسه التحديث، والنقر على أي منها يوضح التغييرات سطراً بسطر — الأسطر المحذوفة باللون الأحمر، والأسطر المضافة باللون الأخضر.
يمكنك الآن قراءة ما فعله التحديث بدقة — خيارات الإعدادات الجديدة، الإعدادات الافتراضية المتغيرة، المفاتيح المعاد تسميتها — بدلاً من التخمين.
config/framework و config/banking فقط قد تغيرا، فيجب أن تكون هذه هي المجلدات التي تراها هنا. أي شيء غير متوقع يستحق نظرة فاحصة قبل إجراء عملية الالتزام (commit).توفيق تخصيصاتك
إذا قام التحديث باستبدال ملف قمت بتخصيصه، فسيظهر الفرق إعداداتك باللون الأحمر (محذوفة) والإعدادات الافتراضية للمورد باللون الأخضر (مضافة). افتح ذلك الملف في المحرر الخاص بك، وأعد تطبيق قيمك — يوضح الفرق بالضبط أي الأسطر هي المقصودة — ثم احفظ. يقوم GitHub Desktop بتحديث المقارنة مباشرة أثناء الكتابة.
لإجراء عملية توفيق تلقائية بالكامل، راجع نصيحة احترافية أدناه.
الالتزام بالتحديث (Commit)
بمجرد أن يبدو كل شيء صحيحاً ويعمل خادمك بسلاسة، عد إلى علامة التبويب Changes، وأدخل ملخصاً مثل Update sky_base to 1.21.0، وانقر على Commit to main.
أصبح لديك الآن نقطة مرجعية موسومة يمكنك العودة إليها دائماً.
الاستعادة عند حدوث خلل ما
هل حدث خلل في التحديث؟ ابقَ هادئاً — يمنحك GitHub Desktop عدة خيارات، من الخيارات البسيطة إلى الخيارات الجذرية.
التراجع عن التغييرات غير الملتزم بها. في علامة التبويب Changes، حدد الملفات (أو جميعها)، وانقر بزر الماوس الأيمن، واختر Discard Changes / Discard All Changes. سيؤدي ذلك إلى استعادتها إلى آخر عملية التزام (commit) قمت بها.
العودة إلى لقطة سابقة. افتح علامة التبويب History (السجل) في الشريط الجانبي الأيسر لرؤية كل لقطة قمت بإنشائها:
- لـ التراجع بأمان عن تحديث مع الحفاظ على سجل نظيف، انقر بزر الماوس الأيمن على الـ commit الخاطئ واختر Revert Changes in Commit (التراجع عن التغييرات في الـ commit). سيؤدي هذا إلى إنشاء commit جديد للتراجع عن التغييرات — دون فقدان أي شيء.
- للرجوع بالكامل إلى حالة سابقة، انقر بزر الماوس الأيمن على اللقطة التي تريدها واختر إعادة الضبط إلى الالتزام (Reset to commit).
قم بوضع تغييراتك في الرف مؤقتًا — مفيد لاختبار تحديث ببيئة نظيفة، ثم استعادة عملك. انقر بزر الماوس الأيمن على رأس الملفات المتغيرة (Changed files) واختر تخزين جميع التغييرات (Stash All Changes). لاستعادتها، اختر التغييرات المخزنة (Stashed Changes) في الشريط الجانبي وانقر على استعادة (Restore).
نصيحة احترافية: الدمج التلقائي لتحديثات الموردين
هل سئمت من إعادة تطبيق تعديلات الإعدادات يدويًا بعد كل تحديث؟ يمكن لـ GitHub Desktop القيام بذلك نيابة عنك باستخدام دمج ثلاثي (three-way merge).
الفكرة: الاحتفاظ بفرع واحد يحتوي على إصدارات الموردين الأصلية وفرع آخر يحتوي على تعديلاتك فوقها.
إنشاء فرع للمورد (Vendor Branch)
انقر فوق القائمة المنسدلة الفرع الحالي (Current Branch) في الأعلى، ثم فرع جديد (New Branch)، وقم بتسميته vendor. هذا الفرع لن يحتوي إلا على ملفات المورد غير المعدلة.
تسجيل كل إصدار في فرع المورد
عند صدور إصدار جديد، انتقل إلى فرع vendor (من قائمة القائمة المنسدلة للفرع الحالي)، واستخرج ملفات الإصدار غير المعدلة فوق الملفات القديمة مع استبدالها، ثم قم بعمل commit مع ملخص مثل Vendor sky_base 1.21.0.
دمج التحديث في تعديلاتك
عد إلى فرع main الخاص بك (من القائمة المنسدلة Current Branch لاختيار الفرع الحالي). ثم افتح Branch → Merge into current branch… (دمج في الفرع الحالي)، واختر vendor، ثم اضغط على merge.
يقوم GitHub Desktop بدمج تغييرات المورد مع تخصيصاتك تلقائيًا. يتوقف البرنامج فقط ليسألك عندما يغير التحديث نفس الأسطر تمامًا التي قمت بتخصيصها — ويظهر شاشة واضحة لحل تلك المواضع القليلة. وفي أي مكان آخر، يتم الاحتفاظ بكلتا مجموعتي التغييرات من أجلك.
هذه هي نفس التقنية التي تستخدمها الفرق الاحترافية لتتبع المكتبات الأصلية دون فقدان التغييرات المحلية — وهي تعمل بنفس الكفاءة لخادمك.
هل تفضل استخدام سطر الأوامر؟
إذا كنت مرتاحًا في استخدام الطرفية (terminal)، فإن سير العمل المذكور أعلاه يترجم إلى مجموعة من الأوامر:
# 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
أفضل الممارسات
- قم بعمل commit قبل كل تحديث. أخذ لقطة (snapshot) يستغرق ثانيتين ويوفر ساعات.
- اكتب ملخصات واضحة.
Update sky_base to 1.21.0تتفوق علىstuffعند مراجعة السجل بعد ستة أشهر. - حافظ على تجاهل الملفات السرية. لا يجب أبدًا تضمين بيانات الاعتماد في سجل الإصدارات.
- قم بعمل commit بعد عملية تشغيل نظيفة، وليس قبلها. لا تضع علامة "جيد" على اللقطة إلا بعد تشغيل الخادم فعليًا.
- تتبع مجلد
resourcesالكامل في مستودع واحد. بهذه الطريقة، يمكن لعملية تراجع (rollback) واحدة استعادة أي سكربت من تحديث سيء. - احتفظ به محليًا. لا تنشر أبدًا الموارد المرخصة أو المحمية بنظام Escrow في مستودع عام.
الخلاصة
لم يعد تحديث خادم FiveM يعني التخمين، أو فقدان التخصيصات، أو البحث المحموم عن النسخ الاحتياطية. فمن خلال إعداد GitHub Desktop لمرة واحدة وروتين يستغرق دقيقة واحدة، يمكنك رؤية كل تغيير يجريه التحديث، والحفاظ على تعديلاتك الخاصة كما هي، والتراجع عن أي خطأ فوراً — كل ذلك دون كتابة أمر واحد.
في المرة القادمة التي يخبرك فيها سجل التغييرات باستبدال مجلد ما، ستفعل ذلك بكل ثقة — لأن GitHub Desktop سيوضح لك بالضبط ما الذي تغير، في كل مرة.
كيفية مزامنة وقت خادم ويندوز لـ Sky Mission Hub
قم بمزامنة ساعة ويندوز على خادم FiveM الخاص بك، وتحقق من مصدر الوقت، وإصلاح طلبات Mission Hub المرفوضة بسبب عدم حداثة الطابع الزمني الخاص بها.
لماذا تُعد أنظمة الشرطة المتكاملة لـ FiveM أكثر فعالية من حيث التكلفة
تحقق عملي لأسعار السوق لأنظمة شرطة FiveM. نحن نقارن تكلفة شراء ميزات الشرطة المماثلة بشكل فردي مقابل اختيار حزمة واحدة متكاملة، باستخدام سعر مدى الحياة المعتاد وقدره 80 يورو كمعيار.