तो निम्नलिखित की कल्पना करें (और हम सभी SourceTree का उपयोग कर रहे हैं):
- हम सभी मूल / विकास कार्य कर रहे हैं।
- मैं एक हफ्ते के लिए छुट्टी पर जाता हूं।
- मेरे सहकर्मी पिछले कई दिनों से स्थानीय स्तर पर काम कर रहे हैं, जो मूल विलय के बिना / अपनी स्थानीय विकास शाखा में वापस विकसित करने के लिए है।
- वह एक धक्का देने की कोशिश करता है, कहा जाता है कि उसे पहले विलय करना है, और फिर एक पुल करता है।
- उसे एक संघर्ष हो जाता है, जिससे स्वचालित कमिट-ए-मर्ज को आगे बढ़ने से रोक दिया जाता है।
- यह मानते हुए कि Git SVN की तरह है, मेरा सहकर्मी "नई" फाइलों को उनकी कार्यशील प्रतिलिपि में छोड़ देता है और फिर मर्ज शुरू कर देता है - उन "नई" फाइलों को मूल / विकास के प्रमुख से मिटा देता है।
- उस संशोधन के शीर्ष पर देव कार्य का एक सप्ताह चलता है।
- मैं छुट्टियों से वापस आता हूं और पता करता हूं कि मेरे काम के कई दिन गायब हैं।
हम सब Git के लिए बहुत नए हैं (यह प्रयोग करने वाला हमारा पहला प्रोजेक्ट है), लेकिन मैंने इसे ठीक करने के लिए जो किया वह था:
- "विकासशील" का नाम बदलकर "develop_old" करें।
- एक नई शाखा "develop_new" में develop_old को मिलाएं।
- बुरा मर्ज करने से पहले अंतिम प्रतिबद्धता के लिए develop_new शाखा रीसेट करें।
- चेरी तब से हर एक कमिटमेंट को चुनती है, एक-एक करके हाथ से टकराव को हल करती है।
- मूल के लिए develop_old और develop_new पुश करें।
इस बिंदु पर, develop_new है, मैं उम्मीद कर रहा हूं, बाद के हफ्तों के साथ हमारे सभी परिवर्तनों की एक "अच्छी" प्रतिलिपि पुन: लागू हो जाएगी। मैं भी यह सोचते हैं रहा है कि "रिवर्स प्रतिबद्ध" इस पर विशेष रूप से काम के अगले कुछ हफ्तों के लायक आधारित है किसी मर्ज पर अजीब काम करेंगे, - और कि मर्ज के बाद से हम चीजों की एक बहुत कुछ शामिल है सामान हम डॉन 'के साथ चाहते हैं टी।
मैं उम्मीद कर रहा हूं कि यह फिर कभी नहीं होगा, लेकिन अगर यह फिर से होता है, तो मैं चीजों को ठीक करने का एक आसान / बेहतर तरीका जानना चाहूंगा। क्या "खराब" मर्ज को हटाने का एक बेहतर तरीका है, जब इस विलय के आधार पर रेपो में बहुत सारे काम हो गए हैं?
git log
साथ हुई घटनाओं के बारे में उचित टिप्पणी के साथ गिट ट्री (उचित रूप से रीडायरेक्ट किए गए) या अपने पसंदीदा प्रारूप का आउटपुट पोस्ट कर सकते हैं ? (मैं / फिर से एनोटेटgit log --graph --pretty=oneline --abbrev-commit
और वहाँ से जाऊँगा)