Git में दिए गए कमिट का प्रिंट कमिट मैसेज


244

मुझे किसी दिए गए कमिट के संदेश को प्रिंट करने के लिए प्लंबिंग कमांड की आवश्यकता है - कुछ ज्यादा नहीं, कुछ कम नहीं।


3
अगर कोई भी सिंगल-लाइन कमिट मैसेज को प्रिंट करने का तरीका git show -s --oneline <commit>
ढूंढता है

सर्वर मशीन में प्रतिबद्ध संदेश को प्रिंट करने के लिए हमें कहां से जोड़ना चाहिए? मेरा मतलब था जो हुक फ़ाइल?

"प्लंबिंग" कमांड का क्या मतलब है?
ब्रायन ऐश

जवाबों:


332

यह "प्लंबिंग" नहीं है, लेकिन यह वही करेगा जो आप चाहते हैं:

$ git log --format=%B -n 1 <commit>

यदि आपको पूरी तरह से एक "प्लंबिंग" कमांड की आवश्यकता है (यह सुनिश्चित नहीं है कि इसकी आवश्यकता क्यों है), तो आप उपयोग कर सकते हैं rev-list:

$ git rev-list --format=%B --max-count=1 <commit>

हालाँकि rev-listयह प्रतिबद्ध संदेश के अलावा कमिट श (पहली पंक्ति पर) का प्रिंट आउट भी लेगा।


4
मेरे लिए पूरी तरह से काम किया है - लेकिन मैं (लिनक्स बॉक्स पर) के %s%bबजाय इस्तेमाल किया%B
adamk

17
%Bएक सही विनिर्देशक है (कम से कम, Git 1.7.2 में, सुनिश्चित नहीं है कि कब जोड़ा गया था)।
मिपाडी

2
%B1.7.1 के बाद कुछ समय में जोड़ा गया था (शायद 1.7.1.1 में)।
मपदी

1
वास्तव में यह है - जीआईटी 1.7.2 जाहिरा तौर पर। मुच्चा ग्रेसिया!
मार्क प्रोब्स्ट

आप यह भी उपयोग कर सकते हैं: $ git log --format=%B -n 1 <commit> | cat -यह आपको प्रतिबद्ध संदेश और कोई प्रतिबद्ध शा देगा, और आप इसे "पाइप" कर सकते हैं। मैं वास्तव में इसे अपने CI स्क्रिप्ट के हिस्से के रूप में उपयोग करता हूं।
पाउलो मुनोज

138

git showप्लंबिंग कमांड की तुलना में अधिक है git log, और एक ही स्वरूपण विकल्प हैं:

git show -s --format=%B SHA1

9
और अगर आप सिर्फ पहली पंक्ति ("विषय") चाहते हैं, तो %sइसके बजाय का उपयोग करें %B
ntc2

13
(मैं इसे स्वीकार किए गए "लॉग" या "रि-लिस्ट" उत्तर के लिए पसंद करता हूं, क्योंकि यह एक एकल-प्रतिबद्ध संचालन है, बजाय 1 प्रविष्टि तक सीमित सूची के।)
रिच

17

प्लंबिंग नहीं है, लेकिन मेरे पास मेरे .gitconfig में ये हैं:

lsum = log -n 1 --pretty=format:'%s'
lmsg = log -n 1 --pretty=format:'%s%n%n%b'

वह "अंतिम सारांश" और "अंतिम संदेश" है। आप उस कमिट का सारांश या संदेश प्राप्त करने के लिए एक कमिट प्रदान कर सकते हैं। (मैं 1.7.0.5 का उपयोग कर रहा हूं इसलिए% B नहीं है।)


आप एक पैरामीटर के रूप में एन-पास कर सकते हैं। इसलिए केवल अंतिम अंतिम रिटर्न के बजाय आप इसे अंतिम 5 कमिट्स वापस करने के लिए बना सकते हैं। यहाँ परिवर्तन आवश्यक lsum = "! F () {git log -n $ 1 --pretty = format:"% s ';}; f "lmsg ="! F () {git log -n $ 1 --pretty! : "% s% n% n% b ';}; f" यह यहां पाया गया stackoverflow.com/questions/7005513/… आप सिर्फ इस git lsum 5 को चलाते हैं
kuklei

15

यह आपको किसी भी निर्दिष्ट समय के लिए सभी संदेशों की एक बहुत कॉम्पैक्ट सूची देगा।

git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT

4

मैंने इस्तेमाल करना शुरू कर दिया

git show-branch --no-name <hash>

से तेज लगती है

git show -s --format=%s <hash>

दोनों एक ही परिणाम देते हैं


1
वह पहली पंक्ति को केवल (% s) दिखाता है, संपूर्ण प्रतिबद्ध संदेश ("कुछ भी नहीं, कुछ भी कम नहीं", जैसा कि पूछने वाले ने लिखा है)। यदि आपके पास% B के साथ शो-ब्रांच करने का एक तरीका है, तो यह मददगार होगा।
कैनन क्रिस

3

मैं इसके लिए शॉर्टलॉग का उपयोग करता हूं:

$ git shortlog master..
Username (3):
      Write something
      Add something
      Bump to 1.3.8 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.