मुझे लगता है कि आप जिस शब्द की तलाश कर रहे हैं वह 'चेरी पिक' है। यही है, एक शाखा के मध्य से एक एकल प्रतिबद्ध लें और इसे दूसरे में जोड़ें:
A-----B------C
\
\
D
हो जाता है
A-----B------C
\
\
D-----C'
यह, ज़ाहिर है, गिट चेरी-पिक कमांड के साथ किया जा सकता है।
इस कमिट के साथ समस्या यह है कि git उनके सामने सभी इतिहासों को शामिल करने के लिए कमिट करता है - इस प्रकार, यदि आपके पास तीन कमेंट्स हैं जैसे:
A-----B-----C
और बी से छुटकारा पाने की कोशिश करें, आपको एक पूरी तरह से नई प्रतिबद्धता बनानी होगी:
A-----------C'
जहां C 'की एक अलग SHA-1 आईडी है। इसी तरह, चेरी को एक शाखा से दूसरी शाखा में ले जाने के लिए मूल रूप से एक पैच उत्पन्न करना शामिल है, फिर इसे लागू करना, इस प्रकार उस तरह से इतिहास को खोना।
कमिट आईडी के इस बदलाव से अन्य चीजों के बीच जीआईटी की विलय की कार्यक्षमता टूट जाती है (हालांकि यदि संयम से इस्तेमाल किया जाता है, तो ऐसे आंकड़े हैं जो इस पर पेपर करेंगे)। हालांकि इससे भी महत्वपूर्ण बात यह है कि यह कार्यात्मक निर्भरता को नजरअंदाज करता है - यदि C वास्तव में B में परिभाषित फ़ंक्शन का उपयोग करता है, तो आप कभी नहीं जान पाएंगे।
शायद इसे संभालने का एक बेहतर तरीका अधिक महीन दाने वाली शाखाएं होंगी। अर्थात्, केवल एक 'मास्टर' होने के बजाय, 'फीचर', 'बगफिक्सबी', आदि एक समय में एक पूरी शाखा पर कोड समीक्षा करें - जहां प्रत्येक शाखा केवल एक ही काम करने पर बहुत केंद्रित है - और फिर विलय करें एक शाखा जब आप कर रहे हैं। यह वर्कफ़्लो है कि git के लिए डिज़ाइन किया गया है, और इसमें क्या अच्छा है :)
यदि आप पैच के स्तर पर चीजों से निपटने पर जोर देते हैं, तो आप डार्क्स को देखना चाह सकते हैं - यह एक रिपॉजिटरी को पैच का एक सेट मानता है, और इस तरह चेरी पिकिंग मौलिक ऑपरेशन बन जाता है। हालाँकि यह समस्याओं का अपना सेट है, जैसे कि बहुत धीमा होना :)
संपादित करें: इसके अलावा, मुझे यकीन नहीं है कि मैं आपके दूसरे प्रश्न को, दो लिपियों के बारे में समझूंगा। हो सकता है कि आप इसे और अधिक विस्तार से वर्णन कर सकें, संभवतः चीजों को भ्रामक होने से बचाने के लिए एक अलग प्रश्न के रूप में?