मैं एक पंक्ति प्रारूप में किसी दिए गए शाखा के लिए काम करने की सूची दिखाने के लिए "गिट लॉग" प्राप्त करने का प्रयास कर रहा हूं।

फिलहाल मेरे पास है:

git log --no-merges --pretty='format:%cN, %s'

जो उत्पादन करता है:

Sarah Developer, Updated the flange pipe
Fred Tester, Implemented new testing methodology

लेकिन मैं जो जोड़ना चाहता हूं वह मर्ज प्रतिबद्धता के कमिटर का नाम है जो अंत में इस शाखा (यदि कोई है) में प्रतिबद्धता प्राप्त करता है, जैसे कि मुझे कुछ मिलता है .. .

Sarah Developer, Updated the flange pipe, Pauline Techarchitect
Fred Tester, Implemented new testing methodology, Hannah Senior

क्या यह संभव है?

git
1
Andrew Beresford 3 अक्टूबर 2019, 15:04

1 उत्तर

सबसे बढ़िया उत्तर

मुझे नहीं लगता कि ऐसी कार्यक्षमता बॉक्स के बाहर गिट में मौजूद है।

यह विचार कि ऐसा कुछ संभव हो सकता है, ऐसा लगता है कि गिट शाखा अवधारणा की थोड़ी गलत समझ पर आधारित है।

तकनीकी रूप से, गिट में (कुछ अन्य वीसीएस के विपरीत) एक शाखा सिर्फ एक प्रतिबद्धता के लिए एक सूचक है। शाखा अवधारणा में एक इतिहास शामिल नहीं होता है जिसमें पहले से इंगित शाखा सूचक होता है।
(शायद पूरी तरह से सच नहीं है... शाखा रीफ्लॉग है, लेकिन इसमें केवल शाखा घटनाएं शामिल हैं जो स्थानीय रूप से हुई हैं, इसलिए इस तरह कुछ के लिए उपयोग करना संभव नहीं है)

अगर मेरे पास इस तरह का प्रतिबद्ध इतिहास है:

*   59817c7 - (HEAD -> master) merge commit
|\  
| * 4e5cf26 - commit b
* | dd09b38 - commit a
|/  
* e27e6cc - base commit

आप यह नहीं बता सकते कि commit a या commit b मास्टर ब्रांच पर बने हैं, और दूसरा साइड ब्रांच पर। (जब तक आप डिफ़ॉल्ट मर्ज प्रतिबद्ध संदेशों से जानकारी नहीं पढ़ते हैं)। दोनों कमिट बराबर हैं। दोनों मास्टर शाखा के इतिहास का हिस्सा हैं, क्योंकि मास्टर शाखा के इतिहास में उन सभी प्रतिबद्धताओं को शामिल किया जाता है जो मास्टर शाखा द्वारा इंगित की जाती हैं।

शाखा अवधारणा के रूप में हम इसे बोलचाल की भाषा में सोचना पसंद करते हैं (अर्थात मर्ज कमिट के माता-पिता में से एक "है" मास्टर शाखा और दूसरा "है" फीचर शाखा) आपके वर्कफ़्लो द्वारा परिभाषित किया गया है, लेकिन यह तकनीकी रूप से निर्मित नहीं है गिट सूचना मॉडल में।

3
Alderath 3 अक्टूबर 2019, 15:50