आप का --stat
विकल्प चाहते हैं git diff
, या यदि आप इसे स्क्रिप्ट में पार्स करना चाहते हैं, तो --numstat
विकल्प।
git diff --stat <commit-ish> <commit-ish>
--stat
मर्ज के बाद आपके द्वारा देखे जाने वाले मानव-पठनीय आउटपुट का उत्पादन करता है; --numstat
एक अच्छा टेबल लेआउट पैदा करता है जिसे स्क्रिप्ट आसानी से व्याख्या कर सकते हैं।
मैंने किसी तरह याद किया कि आप एक ही समय में कई कमिट पर ऐसा करना चाह रहे थे - यह एक काम है git log
। रॉन डेवेरा इस पर स्पर्श करते हैं, लेकिन आप वास्तव में उनके द्वारा उल्लेखित बातों से बहुत अधिक कर सकते हैं। चूंकि git log
आंतरिक रूप से अनुरोधित जानकारी को प्रिंट करने के लिए अलग मशीनरी को कॉल किया जाता है, आप इसे किसी भी भिन्न स्टेट विकल्प में दे सकते हैं - न कि सिर्फ --shortstat
। आप क्या उपयोग करना चाहते हैं:
git log --author="Your name" --stat <commit1>..<commit2>
लेकिन आप --numstat
या --shortstat
साथ ही उपयोग कर सकते हैं । git log
कई अन्य तरीकों से भी कमिट्स का चयन कर सकते हैं - प्रलेखन पर एक नज़र डालें । आपको चीजों में दिलचस्पी हो सकती है --since
( जैसे कमिट कमिटमेंट्स को निर्दिष्ट करने के बजाय, पिछले सप्ताह से कमिट्स का चयन करें) और --no-merges
(मर्ज कमिट्स वास्तव में बदलावों का परिचय नहीं देते हैं), साथ ही साथ सुंदर आउटपुट विकल्प ( --pretty=oneline, short, medium, full...
)।
जीआईटी लॉग से प्रति-प्रतिबद्ध परिवर्तनों के बजाय कुल परिवर्तन प्राप्त करने के लिए यहां एक-लाइनर है (प्रतिबद्ध चयन विकल्पों को वांछित के रूप में बदलें - यह आपके द्वारा प्रतिबद्ध है, कमेट से कमिट 2 तक):
git log --numstat --pretty="%H" --author="Your Name" commit1..commit2 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
(आपको कमिट के बारे में कुछ पहचानने वाली सूचनाओं को लॉग इन प्रिंट करने देना है; मैंने मनमाने ढंग से हैश चुना, फिर तीन क्षेत्रों वाली लाइनों को चुनने के लिए awk का उपयोग किया, जो स्टेट्स जानकारी वाले हैं)