2012-11-15 13 views
5

निम्नलिखित Git इतिहास मान लिया जाये:मैं केवल एक विशिष्ट शाखा के लिए गिट लॉग कैसे प्राप्त करूं?

Branch1  B---C-------F---G 
     / \   \ 
Master A-------D---E-------H 

एक Git लॉग मास्टर कर आदेश ए-बी-सी-डी-ई एफ जी एच निम्नलिखित में लॉग प्रविष्टियों देता है। - लेकिन मैं गुरु-ही हैं (यानी ए-डी-ई एच)

के इतिहास में रुचि कैसे मैं Branch1 से अवांछित लॉग-प्रविष्टियों में से "छुटकारा पाने" कर सकते हैं? मैं Git लॉग के लिए विकल्पों में से एक बहुत कोशिश की, लेकिन मैं कुछ भी उचित नहीं मिल सकता है ...


यह एक और बात मैं इस संदर्भ में समझ में नहीं आता की ओर जाता है:

को देखते हुए गिट लॉग मास्टर द्वारा दिए गए लॉग-इतिहास से पता चलता है कि मेरी शाखा मास्टर कैसे विकसित हुई (एबीसीडीएफएच)।

लेकिन एक Git चेकआउट HEAD कर ~ 1 (यह मानते हुए मास्टर = प्रमुख) मेरे (विकास HEAD ~ 3 देता है: एक - HEAD ~ 2: डी - HEAD ~ 1: - प्रमुख: एच ->ADEH)

यह मैं क्या समझ में नहीं आता है: एच के पूर्वज Git लॉग को देख, जी है, जबकि एच के पूर्वज Git चेकआउट को देख है।

मुझे यह समझ नहीं है - क्या एच का पूर्वज है:? जी या ...


निष्कर्ष: मैं चाहते हैं क्या है करने के लिए Git हैंसे प्रविष्टियां HEAD से HEAD ~ n केवल (उदाहरण के लिए n = 1 ... 3)। यह कैसे प्राप्त किया जा सकता है? क्या यह सभी के लिए संभव है? जी या ई: एच के पूर्वज क्या है -

+0

संभावित गलती [गिट: सूची कैसे करें इस शाखा पर काम करती है लेकिन मर्ज किए गए शाखाओं से नहीं) [http://stackoverflow.com/questions/10248137/git-how-to-list-commits-on-this-branch -बूट-से-मर्ज-शाखाएं नहीं) – CharlesB

+0

आप सही हैं - गलत खोजशब्द खोजशब्द थे (और उद्धृत प्रश्न काफी खराब टैग किया गया है ...) – hoppfrosch

+0

@hopprosch: मैंने – CharlesB

उत्तर

6

क्या आप देख रहे हैं

git log --first-parent 

क्यों कि विकल्प --first-parent कहा जाता है आपके प्रश्न के उत्तर

मुझे यह समझ में नहीं आता है?

उत्तर है: दोनों। ई पहला पैरेंट है, लेकिन जी दूसरा पैरेंट है, क्योंकि एच एक विलय प्रतिबद्ध है। एक विलय प्रतिबद्धता वह है जिसमें एक से अधिक माता-पिता होते हैं।

+0

बहुत बहुत धन्यवाद - वह वास्तव में मैं देख रहा था! मैंने टोर्टोइस गिट के साथ खेला - जिसमें लॉग-व्यू में "पहला-पैरेंट" विकल्प है। लेकिन यह सभी मामलों में सही ढंग से काम नहीं कर रहा है (यदि "सभी शाखाएं दिखाएं" चेक किया गया है, तो "first_parent" कोई प्रभाव नहीं दिखाता है ...) इससे मुझे "पहले माता-पिता" (TortoiseGit 1.7.14.0) – hoppfrosch

+0

से दूर ले गया पूरी तरह स्पष्ट नहीं है, नामकरण है: "फर्स्ट-पैरेंट" (एकवचन) नामक विकल्प क्यों है, जबकि यह पहली डिग्री की पूर्ण पूर्वजों की पंक्ति देता है? बेहतर होना चाहिए "- पहले-माता-पिता" IMHO – hoppfrosch

+0

@hoppfrosch प्रत्येक प्रतिबद्धता के लिए, केवल उस विशेष प्रतिबद्धता का 'पहला अभिभावक' चुना जाता है। Commit H एक विलय प्रतिबद्ध है और इसलिए इसमें दो माता-पिता (जी और ई) हैं, लेकिन पहला माता-पिता ई है। इसलिए हर बार एक विलय प्रतिबद्धता का सामना करना पड़ता है, केवल पहला माता-पिता का पालन किया जाता है, जिससे शीर्ष शाखा पूरी तरह से छोड़ दी जाती है। –

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