2016-07-19 11 views
5

के बाद पेश किए गए डुप्लिकेट कमेट्स को हटाएं मेरे पास 2 शाखाएं, master & feature है। मास्टर को कभी-कभी छोटे बदलाव मिलते हैं जिन्हें जल्दी से जीने के लिए जरूरी है। एक बार इन tweaks किया जाता है, masterfeature में छूट दी गई है ताकि सुविधा अद्यतित रखा जा सके।खराब रिबेस (0)

मास्टर पर बदली गई फाइलें आमतौर पर feature पर विकास के थोक से संबंधित नहीं हैं, लेकिन मुझे जटिल 3 तरीके विलय विवादों की एक बड़ी संख्या मिल रही है।

feature के प्रतिबद्ध लॉग को देखने के बाद, मुझे कई डुप्लीकेट होने की समस्या मिली है और मैं इसे एक इंटरैक्टिव रिबेस के साथ हल करने का प्रयास कर रहा हूं।

मेरा प्रश्न है:

इस समस्या के लिए सबसे अच्छा समाधान है, और यदि हां मैं सिर्फ डुप्लिकेट ड्रॉप और अनिवार्य रूप से निर्माण कर सकते हैं इतिहास मैं इसे कैसे देखने के लिए उम्मीद करते हैं? इसके अलावा मैं कौन सा डुप्लीकेट छोड़ दूंगा, उच्च (पुराना मूल) या निचला (नया डुप्लिकेट)।

सार सूची git rebase master -i से लिया:

pick 0eb277c Commit A 
pick ced2556 Commit B 
pick 640e049 Commit C 
pick b248ff7 Commit D 
pick 9903094 Commit E 
pick ebc279d Commit A 
pick 313385b Commit F 
pick 0d55178 Commit G 
pick c8f09f9 Commit H 
pick e877be3 Commit I 
pick 9859aa0 Commit J 
pick c3c8e0f Commit K 
pick 8abc68c Commit L 
pick 84a5c89 Commit A 
pick 30570e4 Commit B 
pick 937ff2f Commit C 
pick 8e6d911 Commit D 
pick 1dd3a09 Commit E 
pick fe79288 Commit F 
pick 9e790bb Commit G 
pick 0924916 Commit H 
pick 90d59d7 Commit I 
pick ba06c55 Commit J 
pick 7452fad Commit K ** Dupes end here** and features then has 30+ more commits. 
pick d1dca3d Commit M 
pick 6c85f76 Commit N 
pick ad53b78 Commit O 
pick f166471 Commit P 
+1

आप 'git rebase -i HEAD ~ x' 'x' को प्रतिस्थापित कर सकते हैं, जिसकी संख्या आप शीर्ष पर नीचे देखना चाहते हैं, उदाहरण के साथ' गिट रिबेस -आई हेड ~ 3' यह आपको तीन अंतिम काम देगा। फिर आप चुन सकते हैं कि आप कौन से काम को संरक्षित करना चाहते हैं और जिन्हें आप हटाना चाहते हैं। –

+0

प्रतिबद्धता 0eb277c और ebc279d दोनों को प्रतिबद्ध ए के रूप में चिह्नित किया गया है, लेकिन जाहिर है कि उनके sha1 अलग हैं, इस प्रकार वे अलग-अलग हैं। असल में मुझे sha1 सूची में कोई डुप्लीकेट काम नहीं दिख रहा है। – Frodon

+0

मेरा मतलब है कि डुप्लिकेट कमजोर है, प्रतिबद्ध संदेश समान हैं और लागू कोड जो समान है। लेकिन यह एक नई प्रतिबद्धता के रूप में डुप्लिकेट और सहेजा गया है। – Kiee

उत्तर

4

डुप्लिकेट करता है आप git rebase master -i द्वारा उत्पन्न सूची के माध्यम से जाने के लिए और दबाने तीर कुंजियों का उपयोग ऊपर नेविगेट करके और इस सूची में नीचे डुप्लिकेट ड्रॉप चाहिए निकालने के लिए डी उन कामों पर जो आप drop पर चाहते हैं।

(master एक commmit हैश या किसी वैध फिर से आधार बिंदु के साथ बदला जा सकता है)

एक बार जब आप सभी डुप्लिकेट नष्ट कर दिया है और एक प्रतिबद्ध सूची लग रहा है कि कैसे आप इतिहास देखने के लिए उम्मीद है है, बाहर निकलें एएससी दबाकर और !wq टाइप करके दबाकर दबाकर रीबेस स्क्रीन।

फिर से आधार जारी रहेगा और आपके री-बेस पॉइंट पर pick एड की काम करने की सूची लागू होगी।

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