اربط حساب GitHub الخاص بك بموقع وسنحافظ على تزامن الاثنين في كلا الاتجاهين. هذه الخدمة مجانية، وتكون معطلة حتى تقوم بتشغيلها، ونحن نعتمد التغييرات (commit) حصرياً في مستودع تابع لحساب تملكه — ولا نعتمدها أبداً في أي حساب تابع لنا.
ما يتم مزامنته
أي شيء تغيره في ملفات موقعك يصبح اعتماداً (commit) في مستودعك، أياً كانت طريقة تغييره: مدير الملفات، أو SFTP، أو محرر قوالب WordPress، أو عبر جلسة SSH. لا يتعين عليك إبلاغنا — فنحن نقارن موقعك بآخر اعتماد له وندفع (push) الفارق.
بالاتجاه المعاكس، فإن أي دفع إلى فرعك المتصل يستقر في الموقع.
ما لا نعتمد تغييره إطلاقاً
ملف wp-config.php الخاص بك مستبعد عمداً وبشكل دائم. فهو يحتوي على كلمة مرور قاعدة البيانات وأملاح المصادقة (salts) الخاصة بك، وهذه العناصر لا تنتمي إلى أي مستودع — ولا حتى مستودع خاص، لأن git يحتفظ بالسجل إلى الأبد.
مستبعد أيضاً: ملفات .env، والمفاتيح والشهادات، ومجلد الرفع (uploads) الخاص بك، وذاكرات التخزين المؤقت (caches)، وnode_modules. المستودع هو مصدر موقعك، وليس نسخة احتياطية. تنتمي الوسائط إلى نسخك الاحتياطية حيث يتم حفظها بالفعل، ووضعها هنا من شأنه أن يجعل كل عملية دفع بطيئة وكل تغيير غير قابل للقراءة.
ماذا يحدث إذا طرأت تغييرات على كلا الجانبين
هذا هو السؤال الذي يستحق القراءة. لنفترض أنك قمت بتعديل ملف في مدير الملفات، وفي الوقت نفسه قام زميل بدفع تغيير إلى نفس المستودع.
نحن نتوقف. لا نقوم بالدمج، ولا نستبدل تغييرات أي طرف. تظهر علامة التبويب Deploy الخاصة بالموقع عبارة "Your repository has changes we haven't seen"، وتحدد الاعتماد (commit) الذي تحتاج إلى الاطلاع عليه، وتنتظرك. لا يتم فقدان أي شيء على أي من الجانبين أثناء الانتظار — فتعديلك لا يزال على الموقع، واعتمادهم لا يزال في المستودع.
بعد ذلك تختار أنت:
- الاحتفاظ بملفات هذا الموقع — نضع نسختك فوق نسختهم. وتبقى اعتماداتهم محفوظة في السجل؛ ولا يُحذف أي شيء.
- استخدام المستودع، وتجاهل تغييرات الموقع — يتم تطبيق نسخة المستودع على الموقع، ويتم التخلص من التغييرات التي أجريتها هنا. هذا الإجراء هدام، ولهذا السبب هو عبارة عن نقرة متعمدة وليس أمراً نقوم به بالنيابة عنك إطلاقاً.
لا يوجد خيار "الدمج التلقائي"، وذلك عن قصد. فالدمج الذي نجريه قد يُنتج ملفاً لم يكتبه أي منكما، على موقع يعمل مباشرة، ودون أن يراه أي منكما أولاً.
أسباب محتملة لتوقف المزامنة
- لم تقم بربط حساب GitHub الخاص بك. يظل المفتاح متوقفاً حتى تقوم بذلك.
- النظام في انتظارك. راجع ما ورد أعلاه — إجراء التعليق لا يُلغى من تلقاء نفسه.
- حسابك ليس في وضع جيد. تتوقف المزامنة مؤقتاً وتستأنف تلقائياً بمجرد تسوية الفواتير. لا شيء يضيع.
تعرض علامة التبويب Deploy آخر عمليات مزامنة، بما في ذلك تلك التي لم تتضمن أي تغيير. إذا كانت تلك القائمة فارغة وكانت المزامنة قيد التشغيل، فمن المرجح جداً أن الحساب المتصل لا يمكنه الكتابة في المستودع — تحقق من صلاحيات الوصول الخاصة به وأعد الاتصال.
اختيار ما تتم مزامنته
بشكل افتراضي تتم مزامنة الموقع بالكامل. في موقع WordPress، لا يكون هذا عادةً ما تريده: فهو يعني مزامنة كل ملف من ملفات نواة WordPress، والتي لم تكتبها ولن تعدلها. اضبط "مزامنة هذا المجلد فقط" على قالبك — على سبيل المثال wp-content/themes/my-theme — وسيُترك الباقي دون مساس.