Git के साथ वर्डप्रेस


21

मैं यह सवाल इसलिए पूछ रहा हूं क्योंकि मैंने इंटरनेट पर खोज की लेकिन सही समाधान नहीं खोज पाया। वास्तव में मैं एक ऐसा समाधान चाहता हूं जिसमें एक से अधिक डेवलपर एक दूसरे के काम में कोई गड़बड़ी पैदा किए बिना सिंगल वर्डप्रेस प्रोजेक्ट पर काम कर सकें, लेकिन जैसा कि हम जानते हैं कि वर्डप्रेस में हर चीज को डेटाबेस में रखा जाता है जैसे कि कौन सा प्लगइन सक्रिय है और कौन सा नहीं।

यदि डेवलपर्स अपने स्थानीय प्रोजेक्ट में प्लग इन स्थापित करते हैं, तो वे एक-दूसरे के साथ कैसे संवाद करते हैं कि हर एक को उस विशेष प्लगइन या प्लगइन्स आदि को स्थापित करना चाहिए, और कुछ गलतफहमी दूसरों की साइट को तोड़ सकती है यदि हर डेवलपर कोड को धक्का / खींचता है।

क्या हमें डेटाबेस को भी साझा करना चाहिए, प्लगइन / थीम सेटिंग्स को साझा करने के लिए ताकि डेवलपर्स के बीच कोई टकराव या थोड़ा संघर्ष न हो।

धन्यवाद


5
wp-cli.org आपके वर्कफ़्लो के साथ काफ़ी मदद करेगा।
जग्गू

1
यदि संभव हो तो jekyll या समान स्विच करें।
जेन्स स्काउडर

Jekyll github में बेक किया गया है, जो स्पष्ट रूप से git के साथ अच्छा काम करता है ...
DaveRGP

जीआईटी जैसी किसी चीज का उपयोग करते समय एफडब्ल्यूआईडब्ल्यू, टकराव और टकराव पूरी तरह से हटाए नहीं जाते हैं, यह आपको केवल अपने रास्ते से बाहर रहने तक कहा जाता है जब तक आप उन्हें "मर्ज" करने के लिए तैयार नहीं होते।

1
क्या सभी डेवलपर्स सार्वजनिक रूप से होस्ट किए गए एक सामान्य DB को साझा कर सकते हैं और संस्करण नियंत्रण के लिए GIT के लिए प्रतिबद्ध हैं?
मंकीज़ियस

जवाबों:


18

प्लगइन्स के लिए गिट :

फिर, Git को प्रबंधित करने composer.jsonऔर TGM प्लग इन में परिवर्तन का उपयोग करें ।

सबसे कठिन हिस्सा डेटाबेस को सिंक करना है :

निश्चित रूप से, हमें डेटाबेस साझा करना चाहिए। एक प्लगइन सेटिंग्स को फिर से कॉन्फ़िगर करें / विकल्प एक अच्छा विचार नहीं है।

वहाँ रहे हैं कई प्लग , दोनों स्वतंत्र और प्रीमियम है, जो कर सकते हैं।

यदि आप मैन्युअल रूप से कुछ आज़माना चाहते हैं, तो @Wyck के उत्तर के साथ wp-cli को शामिल करें


8

मेरी टीम को इसी तरह की समस्या का सामना करना पड़ा। हम अपने स्वयं के कस्टम कोड जैसे प्लगइन्स और हम जो विषय लिखते हैं, उसका उपयोग करने के लिए git का उपयोग करते हैं। हम कम्पोज़र का उपयोग निर्भरता को प्रबंधित करने के लिए करते हैं जैसे कि प्लगइन्स जो हमने नहीं लिखा था। हम कंपोज़र की जाँच करते हैं। जेसन और कंपोज़र ।लॉक फ़ाइलों को सिंक में रखने के लिए सभी की जाँच करें। प्रत्येक डेवलपर से अपेक्षा की जाती है कि वह git मास्टर शाखा को खींचे और composer updateअपने प्लेपेंस पर अक्सर चलाए ताकि हर कोई अद्यतित रहे।

डेटाबेस में, डेवलपर्स मुख्य रूप से कॉन्फ़िगरेशन के बारे में परवाह करते हैं, और हम अक्सर सिंक में कॉन्फ़िगरेशन रखने के लिए WP-CLI का उपयोग करते हैं। उदाहरण के लिए, हमारे पास एक शेल स्क्रिप्ट है जो प्रति-होस्ट आधार पर प्लग इन को सक्षम या अक्षम करने के लिए WP-CLI कमांड चलाता है; कुछ प्लगइन्स केवल उदाहरण के लिए, होस्ट करने वाली हमारी सामग्री पर उपयोग किए जाते हैं, इसलिए स्क्रिप्ट को किसी भी होस्ट पर चलाया जा सकता है और यह केवल उस होस्ट पर उपयुक्त सेट को सक्षम करेगा। स्क्रिप्ट के लिए बहुत समय लेने वाला कुछ कॉन्फ़िगरेशन बस आवश्यक होने पर मैन्युअल रूप से प्रलेखित और पुन: प्रस्तुत किया जाता है।

हमारे पास एक पर्ल स्क्रिप्ट भी है जो हमारे कंटेंट स्टेजिंग सर्वर से क्यूए या देव होस्ट पर डेटाबेस को पूरी तरह से क्लोन कर देगी। देवता समय-समय पर इस का उपयोग कर सकते हैं यदि वे सभी वर्तमान सामग्री चाहते हैं, हालांकि कोड और कॉन्फ़िगरेशन की तुलना में यह आमतौर पर कम महत्वपूर्ण है। स्क्रिप्ट इन कार्यों को करती है:

  • सामग्री के सर्वर के डेटाबेस के mySQL डंप, तालिका के नामों को बदल दें, लक्ष्य सर्वर के डेटाबेस में लोड करें
  • लक्ष्य सर्वर को संदर्भित करने के लिए डेटाबेस के भीतर स्टेजिंग सर्वर के संदर्भ बदलने के लिए wp-cli का उपयोग करें
  • अपलोड सर्वर पर सामग्री निर्देशिका के साथ लक्ष्य सर्वर पर निर्देशिका को सिंक करें

वास्तव में डेटाबेस को जल्दी से साथ लाने के लिए कुछ आशाजनक समाधान हैं। वर्जनप्रेस और मर्जबोट वे दो हैं जिनके बारे में मुझे पता है और कुछ अन्य भी हो सकते हैं।

मैंने अपने ब्लॉग पर git और Composer के साथ काम करने के लिए वर्डप्रेस कैसे सेट किया, इसके बारे में अधिक तकनीकी जानकारी लिखी । जिस कोड को हम गिट और वर्डप्रेस कोर में बनाए रखना चाहते हैं, उसके बीच साफ-सुथरा अलगाव बनाने के लिए इसकी अपनी निर्देशिका में वर्डप्रेस कोर के साथ चलना आवश्यक था। हम वर्डप्रेस को एक निर्भरता के रूप में मानते हैं और इसे संगीतकार के साथ प्रबंधित करते हैं।


7

इसके लिए मैंने जो सबसे अच्छा समाधान देखा है, वह है बेडरॉक ( https://roots.io/bedrock/ ) का उपयोग करना ।

इस प्रश्न के अन्य उत्तर (संगीतकार, और आपके प्लग इन को प्रबंधित करने के लिए कुछ) अच्छे उत्तर हैं; लेकिन बेडरॉक इसे करने के लिए एक व्यवस्थित, समर्थित, प्रलेखित, लगातार-सुधारित तरीका प्रदान करता है, जो अपने आप को रोल करने के लिए बेहतर है।

इसके अलावा, याद रखें कि आपके पास एक से अधिक git रेपो हो सकते हैं - एक आपकी थीम के लिए, एक आपके द्वारा विकसित प्रत्येक कस्टम प्लगइन के लिए, और फिर एक 'मास्टर' बेडरॉक / वर्डप्रेस इंस्टॉलेशन के लिए।


"बेडरॉक ऐसा करने के लिए एक व्यवस्थित, समर्थित, प्रलेखित, लगातार-सुधार वाला तरीका प्रदान करता है, जो अपने आप को रोल करने के लिए बेहतर है।" पुष्टि कर सकते हैं, बेडरॉक महान है! ऋषि के साथ इसका उपयोग करें (एक ही लोगों द्वारा विकसित, जड़ें) और एक टीम में कस्टम विकास शालीनता से प्रबंधनीय है। अभी भी हिचकी है, और @ Dan9 का उत्तर अधिक पूर्ण है, लेकिन मैं बेडरॉक की प्रशंसा पर्याप्त नहीं गा सकता हूं!
समर

एक एमवीसी डेवलपर के रूप में, मैं सहमत हूं, लेकिन जिस प्रकार का काम मैं वर्डप्रेस साइट्स पर करता हूं, वह फ्रंट फ्रंट आधारित है, इसलिए सेज में एसेट मैनेजमेंट सेटअप सामयिक वैश्विक के बुरे अभ्यास के लायक है।
samrap

0

यदि यह पूरी तरह से आवश्यक है कि आपके पास थीम या कस्टम प्लगइन पर काम करने वाले सभी समान प्लग इन हैं, तो मैं डेटाबेस को भी साझा करूंगा।

हम विभिन्न विकास परिवेशों को अद्यतित रखने के लिए git और कंपोज़र का उपयोग करते हैं । बस नवीनतम परिवर्तनों को खींचें और संगीतकार को फिर से चलाएं और आप जाने के लिए तैयार हैं।


0

इसके लिए सबसे पहले हमें वर्डप्रेस डायरेक्टरी स्ट्रक्चर को समझना होगा। वर्डप्रेस निर्देशिका संरचना उस उपयोगकर्ता के अनुकूल नहीं है जो gitइसके साथ उपयोग करता है। इसलिए मैं आपको सुझाव देना चाहूंगा कि आप इसका उपयोग gitअनुकूल अनुकूल वास्तुकला के साथ करें। नहीं, घबराने की जरूरत नहीं। जरूरी नहीं कि आपको इसे बनाना ही पड़े। वहाँ बॉयलरप्लेट या संरचित वर्डप्रेस सिस्टम के बहुत सारे प्रकार हैं। बस उनमें से एक को चुनें और कोडिंग शुरू करें।

अब अच्छी तरह से संगठित कोड या लेखनीय कोड लिखने के बिंदु पर आएं। हमने वास्तव में अपना कोड wp-content\themes\your-themeया पर रखा है wp-content\themes\your-theme। इसलिए अधिकांश gitदोस्ताना वर्डप्रेस बॉयलर के wp-contentहिस्से को अलग कर दिया जाता है। और वे ज्यादातर WordPress repo throuh को खींचते हैं composer। यह पूरी परियोजना को बहुत अधिक स्वच्छ बनाता है।

प्लगइन्स सिंकिंग एक और महत्वपूर्ण हिस्सा है। बेहतर होगा कि आप अपना प्लगइन इंस्टॉल करें composer। यह प्रोजेक्ट कोड को बहुत अधिक क्लीनर बनाता है। यहाँ आप एक अवलोकन प्राप्त करेंगे कि कैसे के माध्यम से WordPress प्लगइन्स को स्थापित करें composer

अब सबसे महत्वपूर्ण भाग पर आते हैं, डेटाबेस को कैसे सिंक करें। मुझे लगता है कि इसे और अधिक आसानी से 2 तरीकों से किया जा सकता है -

  • सभी डेवलपर को एक दूरस्थ डेटाबेस का उपयोग करना चाहिए। और अक्सर इसका बैकअप बनाते हैं।
  • वर्डप्रेस की आयात निर्यात सुविधा को स्वचालित करें। यह जटिल लगता है, लेकिन ऐसा नहीं है। बस कुछ Google करें, आशा है कि आप ऐसा कर सकते हैं।

आशा है कि आपकी मदद करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.