2014-09-29 11 views
14

2 शाखाएं हैं - master और developGit संघर्ष का अनुरोध करता है

मैं अपने develop शाखा जहां यह 5 आइटम, जिसमें यह master में आइटमों की संख्या के जैसा ही है में कुछ पुल अनुरोध कर रहे हैं ।

हालांकि, किसी ने कुछ और चीजों में pushed को master शाखा में कुछ और आइटमों में किया है, और इसलिए अब इसमें 8 आइटम हैं।

develop में मेरी पुल अनुरोध के रूप में अभी भी अभी तक नहीं/मर्ज किए गए मंजूरी दे दी है, जब भी मैं अपने पुल अनुरोध, मैं यह बताने वाले संदेश मिल रहा है अद्यतन करने के लिए करने की कोशिश की है कि This pull request can't be merged. You will need to resolve conflicts to be able to merge और मेरा पीछा करने के लिए कहा:

git fetch origin master 
git checkout develop 
git merge FETCH_HEAD 
git commit 
git push origin HEAD 

और यह तब होता है जब मैंने अपने कामों को 'धक्का दिया', मुझे कई बार भ्रमित कर दिया। तब मुझे एहसास हुआ कि यह मुझे अतिरिक्त 3 नए आइटमों में दोबारा जोड़ने और फिर से प्रतिबद्ध करने के लिए कह रहा है। तो क्या इसका मतलब है कि मुझे यह सुनिश्चित करना होगा कि मेरी इन दोनों शाखाओं के बीच वस्तुओं और सामग्रियों को हमेशा जैसा ही होना चाहिए? मैंने हमेशा git pull/fetch का उपयोग किया है, लेकिन यह सुनिश्चित करने के लिए मेरे लिए एक बेहतर तरीका होगा? क्योंकि वहाँ संघर्ष कर रहे हैं

+0

नहीं, यह आपको विलय करने के लिए कह रहा है। आप शाखाओं के काम के बारे में उलझन में प्रतीत होते हैं - [दस्तावेज़ों में संबंधित अध्याय] देखें (http://git-scm.com/book/en/Git-branching) – remram

+0

@remram शायद मैं वास्तव में उलझन में हूं। लेकिन फिर भी, यह मुझे मास्टर को विकसित करने के लिए क्यों मर्ज करने के लिए कहेंगे? आम तौर पर यह मेरे लिए दूसरा रास्ता है – dissidia

+0

यदि आप विकास में मास्टर को मर्ज करते हैं, तो github स्वचालित रूप से मास्टर में विकसित करने में सक्षम हो जाएगा। – remram

उत्तर

17

इसका मतलब क्या है, कि GitHub master में अपने जनसंपर्क शाखा मर्ज करना चाहते हैं, लेकिन यह नहीं कर सकता। जैसा कि आपने प्रश्न टिप्पणियों में चर्चा की है, इस से निपटने का सबसे अच्छा तरीका (आमतौर पर) कमांड लाइन पर master शाखा को develop में विलय करना है। यह आपको संघर्ष दिखाएगा और आपको हल करने के लिए कहेंगे। एक बार जब आप इसे पूरा कर लेते हैं और धक्का देते हैं, तो पीआर गिटहब पर हरे रंग के बटन का उपयोग करके master में विलय योग्य हो जाएगा।

आप बस master में अपने deploy शाखा (जो मुझे लगता है थोड़ा अधिक समझदार लगता है) मर्ज कर सकते हैं। उस स्थिति में, आप पीआर को पूरी तरह से बाईपास कर देंगे। आपको पीआर "अनमर्ज" बंद करना होगा, और अलग से आप मर्ज प्रतिबद्धता को master पर मैन्युअल रूप से पुश करेंगे।

यह पहला तरीका ऐसा करने से,

  1. आप GitHub पर महारत हासिल करने, पीआर का उपयोग कर का विलय करके एक बेहतर लेखापरीक्षा निशान बनाते हैं;
  2. आप master पर उतरने से पहले, अपनी टीम को मर्ज के बाद अपने कोड की समीक्षा करने का मौका देते हैं; और
  3. यदि आप जो पीआरएस जाँच (जैसे ट्रैविस सीआई या CircleCI के रूप में) स्वत: परीक्षण है, तो आप उन्हें अपने मर्ज किए गए कोड के रूप में अच्छी तरह से चलाने के लिए एक मौका देते हैं।
+0

यह मेरे लिए विशेष रूप से पीआर शाखा के मामले में समझ में आता है, जिसमें मैं जो कर रहा हूं उससे बिल्कुल अलग होगा जहां मेरी 'विकास' शाखा को 'मास्टर' में विलय किया जा रहा है जैसा कि आप उल्लेख किया है – dissidia

+0

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

+0

यह लिंक विकास में मास्टर विलय करने के पिजा के बयान को प्राप्त करने के तरीके के बारे में एक अच्छा अवलोकन देता है: https://confluence.atlassian.com/bitbucket/resolve-merge-conflicts-704414003.html – Paul

0

मैंने नीचे वर्णित ग्रहण-गिट इंटरफ़ेस का उपयोग करके इसे हल किया।

1- सभी परिवर्तनों को 'देव' शाखा में तैयार करने और उन्हें धक्का git करने के लिए रखें।

2- 'मास्टर' शाखा में चेकआउट और सभी परिवर्तनों को खींचें। और 'गुरु' शाखा पर राइट क्लिक - '> स्थानीय फ़ोल्डर का विस्तार देखने Git संग्रह' और 'मर्ज' विकल्प पर क्लिक करें

3 पर जाएं।

4- यह विंडो 'के मंचन Git' में लाल धब्बे के साथ उन सभी संघर्ष दिखाने खुल जाएगा।

5- प्रत्येक लाल की मौके पर ही अब राइट क्लिक करें और क्लिक करें -> 'Git सूचकांक के साथ की जगह'। वह लाल स्थान अब गायब हो जाएगा।

6- सभी लाल स्थान के लिए ऐसा करने के बाद, दाएं तरफ से अपना विलय करें।

7-किया गया।

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