2012-01-30 18 views
97

में विलय प्रतिबद्धता के माता-पिता प्राप्त करें विलय प्रतिबद्धता को देखते हुए, मैं अपने माता-पिता कैसे प्राप्त कर सकता हूं? कुछ गिट कमांड माता-पिता को संशोधन के रूप में लेते हैं; अन्य (जैसे git revert), एक अभिभावक संख्या के रूप में। मैं जानना चाहता हूं कि दोनों मामलों के लिए माता-पिता कैसे प्राप्त करें। मैं ग्राफिकल लॉग कमांड का उपयोग नहीं करना चाहता क्योंकि इसे अक्सर दूसरे पैरेंट को खोजने के लिए लंबे पेड़ को स्क्रॉल करने की आवश्यकता होती है।गिट

उत्तर

118

भी ध्यान रखें कि सामान्य लॉग उत्पादन माता-पिता की संक्षिप्त हैश पता चलता है, स्क्रॉल करने की आवश्यकता:

commit 395f65d438b13fb1fded88a330dc06c3b0951046 
Merge: 9901923 d28790d 
... 

Git हमेशा माता पिता संख्या के क्रम में उन्हें प्रिंट: पहले हैश पहले माता-पिता के लिए है, और इसी तरह।

तुम सिर्फ हैश, दो बराबर विकल्प चाहते हैं:

git log --pretty=%P -n 1 <commit> 
git show --pretty=%P <commit> 

rev-list भी माता-पिता एक प्रतिबद्ध के लिए हैश दिखा सकते हैं। यह पहली बार हैश को एक प्रतिबद्धता के लिए सूचीबद्ध करेगा, उसके बाद माता-पिता '।

git rev-list --parents -n 1 <commit> 

आप माता-पिता की जांच करना चाहते हैं, तो आप सीधे उन्हें कैरेट के साथ <commit>^1 और <commit>^2, उदा .:

git show <commit>^1 

यह सामान्य है के रूप में उल्लेख कर सकते हैं; एक ऑक्टोपस विलय के लिए आप एन वें माता-पिता को <commit>^n के रूप में देख सकते हैं। आप सभी माता-पिता को <commit>^@ के साथ संदर्भित कर सकते हैं, हालांकि यह एक काम करने पर आवश्यक नहीं होने पर यह काम नहीं करता है। एन वें पैरेंट सिंटैक्स (उदा। <commit>^2^, <commit>^2^@) के बाद अतिरिक्त प्रत्यय दिखाई दे सकते हैं, जबकि वे ^@ (<commit>^@^ मान्य नहीं हैं) के बाद नहीं हो सकते हैं। इस वाक्यविन्यास पर अधिक जानकारी के लिए, rev-parse मैन पेज पढ़ें।

भी ध्यान रखें कि सामान्य लॉग उत्पादन माता-पिता की संक्षिप्त हैश दिखाता है:

commit 395f65d438b13fb1fded88a330dc06c3b0951046 
Merge: 9901923 d28790d 
... 
+0

का जवाब देने के माता-पिता को देखने के लिए मिल गया है है मेरा खुद का प्रश्न: 'गिट रेव-लिस्ट - पारेन्ट्स-एन 1 ' के परिणाम हैं: । हां, माता-पिता एक नंबर पर हैं। – mikemaccana

+0

आप गिट-माता-पिता का भी उपयोग कर सकते हैं https://github.com/danielribeiro/dotfiles/blob/master/bin/git-parents। बस इसे अपने पैथ में रखें और $ गिट माता-पिता ( हेड पर डिफ़ॉल्ट) पर कॉल करें –

+0

@jefromi, मैं वास्तव में चाहता हूं कि "यह भी ध्यान दें कि सामान्य लॉग आउटपुट दिखाता है ..." भाग आपके उत्तर के शीर्ष पर है। :) –

19

निम्नलिखित सबसे आसान तरीका मैं किसी मर्ज

git show --pretty=raw 3706454 
+10

'गिट बिल्ली-फ़ाइल -पी 3706454' वही है लेकिन यहां तक ​​कि छोटा :) – sabgenton

+0

ये दोनों बहुत उपयोगी हैं! – tecknut