मेरे पास दो शाखाएं स्वतंत्र थीं। मैंने उन पर एक महीने से अधिक विभिन्न बिंदुओं पर काम किया। मैं नारंगी की जांच करके और git merge --no-ff apple
कर रहा हूं और सब कुछ ठीक हो गया है (मैं इसे apple
पर कॉल करें) को चलो (चलो इसे orange
पर कॉल करें) और सब कुछ ठीक हो गया। गिट में मैं स्पष्ट रूप से उन शाखाओं को देख सकता था जिनके प्रत्येक का अपना इतिहास था और यह नारंगी पर एक विलय प्रतिबद्धता में एक साथ विलय हो गया था।गिट - रिबेस रेजिन विलय
बाद में मुझे एहसास हुआ कि नारंगी में एक प्रतिबद्धता गलत है, निर्माण प्रक्रिया में कोई गलती है, और मुझे नारंगी पर उस प्रारंभिक प्रतिबद्धता को संपादित करना होगा। मैं git rebase -i HEAD~19
का उपयोग करता हूं, प्रतिबद्धता चुनें और pick
से edit
बदलें। तो मैं प्रतिबद्धता संपादित करता हूं और सबकुछ ठीक है, और मैं रिबेस समाप्त करता हूं। मैं वापस गिटक में जाता हूं और दोनों शाखाओं का इतिहास नारंगी पर एक रैखिक इतिहास है।
तो क्या मैंने कुछ खींचा या क्या यह ऐसा माना जाता है? मैंने ग्रिट रीफ्लॉग का उपयोग तब किया जब मैंने विलय किया, फिर मैंने नारंगी पर विलय से पहले ठीक से वापस जाने के लिए एक और रीसेट किया, फिर मैंने रिबेज किया और प्रतिबद्ध किया कि उसके बाद मैंने विलय किया। अब सबकुछ दिखता है जिस तरह से मैं अपेक्षा करता हूं कि शाखाओं से काम करने के लिए एक साथ अंतःस्थापित नहीं किया जाता है।
भविष्य के संदर्भ के लिए कोई मुझे बता सकता है कि मैं एक शाखा में काम कैसे कर सकता हूं जहां मैं एक और शाखा में विलय कर चुका हूं, बिना अंतःस्थापित समितियों (रैखिक इतिहास) के समाप्त होने के बिना?
यदि मेरी शब्दावली सही नहीं है तो इसे संपादित करने में संकोच न करें। धन्यवाद फिर से
मुझे 'gitk' नहीं पता है, लेकिन 'gitg' में मेरे पास शाखाएं चुनने का विकल्प है, क्या आपने सभी स्थानीय शाखाओं की तरह कुछ चुना है? –
शायद रिश्तेदार 'HEAD ~ 19' के बजाय प्रतिबद्ध आईडी पर रीबेस करें? – nneonneo
ध्यान दें कि गिट 1.8.5 'पुल --rebase'] पर विलय को संरक्षित रखने के लिए एक साफ तरीका पेश करेगा (http://stackoverflow.com/a/18756102/6309) – VonC