2011-11-17 21 views
10

मैं आउट प्लेटफॉर्म के कस्टम उदाहरण बनाने और तैनात करने के लिए शाखा का उपयोग कर रहा हूं। ये उदाहरण आम तौर पर 'मास्टर' शाखा से शाखा के रूप में शुरू होते हैं, कुछ हद तक अनुकूलित होते हैं, परीक्षण और उत्पादन में तैनात होते हैं, और अंततः संग्रहित होते हैं।मास्टर शाखा में गिट विलय को रोकने

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

क्या मास्टर में वापस विलय करने से मना करने का कोई आसान तरीका है? या कम से कम कुछ फोर्स फ्लैग की आवश्यकता है?

उत्तर

2

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

+0

क्या downvote के साथ है करने के लिए नदी के ऊपर परिवर्तन पुश करने के लिए की जरूरत है? मुझे बताएं कि मेरे उत्तर में क्या गलत है और मैं स्पष्टीकरण दूंगा। धन्यवाद। –

+0

हाय एडम, मुझे नहीं लगता कि मैंने आपका जवाब घटा दिया है। मैं वास्तव में बहुत यकीन है कि मैंने इसे ऊपर उठाया। लेकिन अगर मैंने कोई गलती की है। इसके अलावा गिटोलाइट अभी भी हमारी ज़रूरतों के लिए थोड़ा अधिक है, लेकिन मैं देख सकता हूं कि सर्वर की तरफ हुक क्या कर सकता है। – balm

+0

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

-1

यदि आप केवल मास्टर में विलय से बचना चाहते हैं, तो आप इसे रोकने के लिए प्री-मर्ज हुक का उपयोग कर सकते हैं।

+1

मुझे कोई सबूत नहीं मिला कि प्री-मर्ज हुक जैसी कोई चीज है। – pjmorse

1

गिट कई दूरस्थ भंडारों के साथ काम करने में काफी खुश है।

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

अपने "मास्टर दूरस्थ" से

git checkout <custom-branch> 
git fetch main 
git merge main/master 

की तरह कुछ बग फिक्स के साथ एक "कस्टम उदाहरण" अद्यतन करने के लिए आप टाइप करेंगे जहां main दूरदराज के भंडार के रूप में आप master (मैं नाम बदल दिया है की बात कर रहे है अपने स्थानीय शाखाओं के लिए एक शाखा और एक रिमोट)

बीच भ्रम की स्थिति से बचने के लिए, main रिमोट ट्रैकिंग शाखा के रूप में निर्दिष्ट नहीं करने के बजाय एक उदाहरण विशिष्ट दूरस्थ निर्दिष्ट करें। यानी एक कस्टम उदाहरण प्रति रिमोट रिपोजिटरी।

अपने कस्टम उदाहरण में परिवर्तन धक्का करने के लिए, का उपयोग

git push 

दुर्लभ मामले में जहां "मास्टर" शाखा उपयोग

git push main 
+0

धन्यवाद। यह वही है कि हम कैसे काम करते हैं, लेकिन किसी तरह किसी ने गिट पुश किया - और फिर एक गिट पुल या ऐसा कुछ जो विलय करता है। या ऐसा न हो कि मैं समझता हूं। – balm

+0

गिट पुल का उपयोग न करें। गिट पहले प्राप्त करें और फिर स्थानीय शाखाओं में विलय, पुन: प्रयास या रीसेट करने के साथ अद्यतन दूरस्थ ट्रैकिंग शाखाओं के अनुसार कार्य करें। –

+0

मैं एडम से सहमत हूं, वही तरीका है जो मैं करता हूं। बस सुनिश्चित करें कि आप अपने परिवर्तनों को धक्का देने के बाद रीबेज नहीं करते हैं या चीजें बदसूरत हो जाती हैं। –

संबंधित मुद्दे