2012-04-24 7 views
7

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

एक समाधान मेरे पास आता है 'गिट अनुरोध-पुल' आउटपुट का विश्लेषण करना। क्या संघर्ष का पता लगाने के लिए कोई आसान तरीका है?

git merge --ff-only <branch> 

अगर कोई संघर्ष कर रहे हैं, यह एक मर्ज करना होगा:

+0

यहां क्या पूछा जा रहा है? क्या आप मर्ज टूल को कार्यान्वित कर रहे हैं? या एक diff देखने उपकरण? या बस उत्सुक है कि 'गिट पुश' क्या करने जा रहा है? –

+0

गीथब में, गैर-टकराव पुल अनुरोध को वेब पर एक बटन क्लिक करके विलय किया जा सकता है। चूंकि स्रोत/लक्ष्य भंडार जारी रहेगा, इस प्रक्रिया में संघर्ष का पता लगाना आवश्यक है। मैं संघर्ष का पता लगाने का एक आसान तरीका पूछ रहा हूं। – stcatz

उत्तर

-2

अंत में मैं संघर्ष पता लगाने के लिए अपने खुद के समारोह में लिखा था।

यह काफी सरल है, बस सभी diff लाइनों को लाएं, और तुलना करें कि क्या समान संशोधन हैं।

+2

भविष्य के संदर्भ के लिए इसे यहां पोस्ट करना बहुत अच्छा होगा – CharlesB

2

मैं अपने पिछले जवाब नष्ट कर दिया है, मैं सवाल समझ में नहीं आया ...

अब यहाँ चमकदार नया जवाब । एक संघर्ष के साथ, यह आपको एक संदेश देता है: Not possible to fast-forward। इस स्थिति में कंसोल रिटर्न कोड (echo $?) 128 है।

+0

यह प्रश्न के लिए प्रासंगिक नहीं है, लेकिन लाने के बाद विलय करते समय अच्छा है। –

0

जहां तक ​​मुझे पता है, आप यह नहीं समझ सकते कि क्या विलय तब तक संघर्ष उत्पन्न करेगा जब तक आप वास्तव में इन शाखाओं को विलय नहीं करते।

यह पहले से ही इंगित किया गया था: How to test a merge without actually merging first

तो, अपने प्रश्न का उत्तर देने के लिए, यदि आपको इस तरह की सुविधा को लागू करने की आवश्यकता है, तो आपको सबसे अधिक संभावना है कि आप अपने स्रोत/लक्ष्य को विलय करने और मर्जिंग एक्शन (git reset --hard का उपयोग करके) को मर्ज करने का प्रयास करें।

मैंने कभी भी git request-pull का उपयोग नहीं किया, लेकिन आउटपुट को देखते हुए, मुझे कोई ऐसी जानकारी नहीं दिखाई दे रही है जो आपकी समस्या का समाधान करने में आपकी सहायता कर सके। आप शायद git diff, git wtf, git remote show <name> का उपयोग कर एक ही परिणाम प्राप्त कर सकते हैं।

संदर्भ:

1

हमने एक गिट-टकराव-डिटेक्टर बनाया है जो सभी मौजूदा शाखाओं के विरुद्ध नवीनतम धक्का प्रतिबद्धता की जांच करता है।

यह एक साधारण एकल स्क्रिप्ट है जिसे गिटहब वेबहूक यूआरएल द्वारा शुरू किया गया है और यहां तक ​​कि संघर्ष के दौरान एक हायचैट अधिसूचना भेजने के बारे में भी पता है।

हम git merge --ff-only <branch> उत्पादन का विश्लेषण करने पर हमारे समाधान आधारित के रूप में आप here

देख सकते हैं हम ओपन सोर्स यह इतना सब, आनंद जानने के लिए और योगदान कर सकते हैं है।