हमने हाल ही में SVN से Git में स्विच किया और उसी समय हमारे लाइव सिस्टम को संस्करण नियंत्रण में रखा (बजाय स्थानीय चेकआउट और लाइव करने के लिए फ़ाइल कॉपी)।
इस परियोजना के लिए, हम सभी को एक ही रिपॉजिटरी का उपयोग करने के लिए सौंपा गया है और हम अभी git pull
वहाँ रहते हैं । इसके कारण समस्याएँ होती हैं क्योंकि हमारे वेबसाइनर्स VCS में परिवर्तन को धक्का देते हैं जो कि अभी तक लाइव नहीं होना चाहिए लेकिन वेब-परीक्षण वातावरण पर होना चाहिए।
जब डेवलपर्स में से एक अब लाइव में खींचता है तो उसे सभी (संभवतः अपूर्ण) परिवर्तन मिलते हैं।
मैंने लाइव को एक अतिरिक्त शाखा में बदलने के बारे में सोचा और बस जो मिला उसे बदल दिया लेकिन मेरे ज्ञान की कमी के कारण मुझे पता नहीं है कि कैसे।
मेरा विचार है:
- लाइव में एक नई शाखा बनाएँ (
git branch live
)। - हर बार कुछ न कुछ लाइव करना होता है
- मास्टर में पुल परिवर्तन (जैसे:
git checkout master; git pull; git checkout live
) git merge master
- मास्टर में पुल परिवर्तन (जैसे:
समस्या यह है कि मास्टर पर स्विच करने या लाइव सिस्टम में सीधे सब कुछ खींचने से समस्याएं पैदा होंगी, इसलिए मैं इससे बचना पसंद करूंगा।
क्या ऐसा करने का कोई तरीका है या लाइव सिस्टम को प्रबंधित करने के लिए कोई बेहतर तरीका है (वेबिन को प्रशिक्षण देने के लिए छोड़कर अनैतिक सामान को धक्का न दें)।
git checkout -f
तो समस्या को अनदेखा करने के लिए उपयोग करें - लेकिन बैकअप करें!
git pull --all
डिफ़ॉल्ट रूप से मास्टर को लाइव में नहीं खींचेगा, यह मास्टर को खींच लेगा और इसे मास्टर के साथ मर्ज कर देगा, और (यदि सर्वर पर मौजूद है) लाइव को मर्ज करने के लिए लाइव खींचें। क्या तुमने कोशिश की?