अपनी साइट से अपना स्वयं का GitHub खाता कनेक्ट करें और हम दोनों को दोनों दिशाओं में एक साथ सिंक रखेंगे। यह निःशुल्क है, जब तक आप इसे चालू नहीं करते यह बंद रहता है, और हम केवल आपके स्वामित्व वाले खाते के रिपॉजिटरी में कमिट करते हैं — कभी भी अपने किसी खाते में नहीं।
क्या सिंक होता है
आप अपनी साइट की फ़ाइलों में जो कुछ भी बदलते हैं वह आपकी रिपॉजिटरी में एक कमिट बन जाता है, भले ही आपने इसे कैसे भी बदला हो: फ़ाइल मैनेजर, SFTP, WordPress थीम एडिटर, या एक SSH सत्र। आपको हमें बताने की आवश्यकता नहीं है — हम आपकी साइट की तुलना उसके अंतिम कमिट से करते हैं और अंतर को पुश करते हैं।
दूसरी दिशा में, आपकी कनेक्टेड ब्रांच में किया गया पुश सीधे साइट पर लागू होता है।
हम कभी क्या कमिट नहीं करते
आपकी wp-config.php फ़ाइल को जानबूझकर और स्थायी रूप से बाहर रखा गया है। इसमें आपका डेटाबेस पासवर्ड और आपके प्रमाणीकरण सॉल्ट होते हैं, और वे किसी रिपॉजिटरी में रखने के लिए नहीं हैं — निजी रिपॉजिटरी में भी नहीं, क्योंकि git इतिहास को हमेशा के लिए सुरक्षित रखता है।
यह भी बाहर रखे गए हैं: .env फ़ाइलें, कुंजियाँ और प्रमाणपत्र, आपका अपलोड फ़ोल्डर, कैश और node_modules। एक रिपॉजिटरी आपकी साइट का स्रोत है, बैकअप नहीं। मीडिया आपके बैकअप का हिस्सा है, जहाँ इसे पहले से ही रखा जाता है, और इसे यहाँ रखने से प्रत्येक पुश धीमा हो जाएगा और प्रत्येक परिवर्तन अपठनीय हो जाएगा।
क्या होगा यदि दोनों पक्षों में परिवर्तन किए गए हों
यह वह प्रश्न है जिसे पढ़ना महत्वपूर्ण है। मान लीजिए कि आप फ़ाइल मैनेजर में किसी फ़ाइल को संपादित करते हैं, और इसी बीच कोई सहकर्मी उसी रिपॉजिटरी में कोई परिवर्तन पुश कर देता है।
हम रुक जाते हैं। हम मर्ज नहीं करते हैं, और हम किसी के काम को अधिलेखित (ओवरराइट) नहीं करते हैं। साइट का Deploy टैब प्रदर्शित करता है "Your repository has changes we haven't seen", उस कमिट का नाम बताता है जिसे आपको देखना चाहिए, और आपकी प्रतीक्षा करता है। प्रतीक्षा के दौरान किसी भी तरफ कुछ भी नहीं खोता है — आपका संपादन अभी भी साइट पर है, उनका कमिट अभी भी रिपॉजिटरी में है।
फिर आप चुनते हैं:
- Keep this site's files — हम आपका संस्करण उनके संस्करण के ऊपर रखते हैं। उनके कमिट इतिहास में बने रहते हैं; कुछ भी मिटाया नहीं जाता है।
- Use the repository, discard site changes — रिपॉजिटरी का संस्करण साइट पर लागू किया जाता है, और आपके द्वारा यहाँ किए गए परिवर्तन निरस्त कर दिए जाते हैं। यह प्रक्रिया विनाशकारी है, यही कारण है कि यह एक विचारपूर्वक किया जाने वाला क्लिक है और ऐसा कुछ कभी नहीं है जो हम आपकी ओर से स्वयं करें।
जानबूझकर "स्वचालित रूप से मर्ज करें" का कोई विकल्प नहीं दिया गया है। हमारे द्वारा किया गया मर्ज किसी लाइव साइट पर ऐसी फ़ाइल तैयार कर देगा जिसे आप दोनों में से किसी ने नहीं लिखा है, और वह भी आप दोनों में से किसी के इसे पहले देखे बिना।
सिंकिंग क्यों रुक सकती है
- आपने अपना स्वयं का GitHub खाता कनेक्ट नहीं किया है। जब तक आप ऐसा नहीं करते, स्विच बंद ही रहता है।
- यह आपकी प्रतीक्षा कर रहा है। ऊपर देखें — कोई रोक अपने आप नहीं हटती।
- आपका खाता अच्छी स्थिति (good standing) में नहीं है। बिलिंग अद्यतित होते ही सिंकिंग रुक जाती है और अपने आप फिर से शुरू हो जाती है। कुछ भी नहीं खोता है।
Deploy टैब अंतिम कुछ सिंक दिखाता है, जिनमें वे भी शामिल हैं जहाँ कुछ भी नहीं बदला था। यदि वह सूची खाली है और सिंक चालू है, तो सबसे अधिक संभावना है कि कनेक्ट किया गया खाता रिपॉजिटरी में लिख नहीं सकता है — इसकी पहुँच की जाँच करें और पुन: कनेक्ट करें।
क्या सिंक करना है इसका चयन करना
डिफ़ॉल्ट रूप से पूरी साइट सिंक होती है। WordPress साइट पर आम तौर पर आप ऐसा नहीं चाहते हैं: इसका अर्थ WordPress कोर की प्रत्येक फ़ाइल है, जिसे आपने नहीं लिखा है और जिसे आप संपादित नहीं करेंगे। "Sync only this folder" को अपनी थीम पर सेट करें — उदाहरण के लिए wp-content/themes/my-theme — और बाकी सब कुछ वैसे ही छोड़ दिया जाता है।