मैं एक विशिष्ट शाखा में नवीनतम प्रतिबद्धता के लिए प्रतिबद्ध संदेश प्राप्त करने का प्रयास कर रहा हूं जो एक विशिष्ट फ़ाइल को छूता है।

शाखा बी और फ़ाइल एफ को देखते हुए, मैंने सोचा कि यह काम करेगा:

git show --pretty=format:%b B:F

लेकिन यह %b प्रारूप को अनदेखा करता है और फ़ाइल F की सामग्री को प्रदर्शित करता है।

मैंने "शो" को "लॉग" से बदल दिया, लेकिन फिर यह कुछ भी प्रदर्शित नहीं करता है।

मुझे पाता है कि मैं यह कर सकता हूँ:

git log -1 --pretty=format:%b SHA

लेकिन इसके लिए SHA की आवश्यकता है, और मुझे नहीं पता कि इसे कैसे प्राप्त किया जाए।

git
1
user5613277 28 फरवरी 2019, 00:46

2 जवाब

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

यदि आप खोज करते हैं, जैसा कि आप अपने पहले वाक्य में बताते हैं,

« किसी विशिष्ट शाखा में नवीनतम प्रतिबद्धता के लिए प्रतिबद्ध संदेश जो किसी विशिष्ट फ़ाइल को स्पर्श करता है »

फिर

git log -1 --pretty=format:'%b' <branch> -- path/to/file

जाने का रास्ता प्रतीत होगा।

फिर, जैसा कि phd, आप अकेले बॉडी (%b) के बजाय पूर्ण प्रतिबद्ध संदेश (%B) का उपयोग करने पर विचार कर सकते हैं। दरअसल, यदि कमिटमेंट में केवल एक लाइन का संदेश है (उदाहरण के लिए यदि आप सिर्फ git commit -m "short message"), %s (विषय) में यह शामिल है और %b खाली है।

1
RomainValeri 28 फरवरी 2019, 01:09

यह स्क्रिप्ट आपके लिए अंतिम प्रतिबद्ध तिथि, उपयोगकर्ता और संदेश के साथ सभी शाखाओं (-a ध्वज के कारण दूरस्थ) का प्रिंट आउट लेगी

git fetch --all && 
    for branch in `git branch -r | grep -v HEAD`; 
        do echo -e `git show --format="%ci %cr [%s]" $branch | head -n 1` \\t$branch; 
    done | sort -r
0
CodeWizard 28 फरवरी 2019, 02:46