गिट में एक परियोजना पर सभी डेवलपर्स की सूची बनाएं


206

क्या उन सभी उपयोगकर्ताओं को सूचीबद्ध करना संभव है, जिन्होंने एक परियोजना में योगदान दिया है (जिन उपयोगकर्ताओं ने कमिट किया है)?

कोई अतिरिक्त आँकड़े?

जवाबों:


387

सभी उपयोगकर्ताओं और ईमेलों को दिखाने के लिए, और CURRENT शाखा में कमिट की संख्या:

git shortlog --summary --numbered --email

या केवल:

git shortlog -sne

सभी शाखाओं से उपयोगकर्ताओं को दिखाने के लिए (न केवल वर्तमान शाखा में) आपको --allध्वज जोड़ना होगा :

git shortlog -sne --all

3
ध्यान दें कि यदि आप स्क्रिप्ट के भीतर से इस कमांड का उपयोग करना चाहते हैं, या "चींटी" जैसी कोई चीज़, तो आपको एक संशोधन निर्दिष्ट करना होगा या यह कुछ भी आउटपुट नहीं करेगा। वर्तमान संशोधन के लिए आप HEAD का उपयोग कर सकते हैं:git shortlog -sn HEAD
माजेंको

59
साथ ही ई-मेल पते प्राप्त करने के लिए -e
mic_e

10
सभी शाखाओं से उपयोगकर्ताओं को दिखाने के लिए (केवल वर्तमान शाखा में ही नहीं) आपको --allध्वज जोड़ना होगा
जियान मार्को घेरार्डी

3
क्या होगा अगर मैं नहीं चाहता कि कमिट्स की संख्या?
वेयरबेंड्स जूल

1
यह जाँचने के लिए भी बढ़िया है कि किसने पूरे प्रोजेक्ट के बजाय किसी विशिष्ट फ़ाइल को छुआ है। git shortlog --summary --numbered <pathToFile>
23

40

यदि आप सूची में और विशिष्ट होना चाहते हैं (अद्वितीय कमेंट और लेखक की सूची खोजें), तो आप उपयोग कर सकते हैं git log:

git log --pretty="%an %ae%n%cn %ce" | sort | uniq
  • %an लेखक का नाम
  • %ae लेखक का ईमेल
  • %n नई पंक्ति
  • %cn कमिट नाम
  • %ce कमिट ईमेल

अन्य प्लेसहोल्डर्स के सुंदर प्रिंट प्रलेखनgit log में वर्णित हैं ।


मुझे लगता है कि %n(लाइन-आधारित) के साथ संयोजन में बहुत अधिक समझ में नहीं आता है sort, है ना? लाइन अलग-अलग लाइनों में लेखक / कमिटरी नाम / ईमेल को लॉग करती है, लेकिन पूरे आउटपुट पर सॉर्ट करती है ...
ssc

@ सीसी कमिटेटर ईमेल लेखक ईमेल से अलग हो सकता है। % n उन अंतरों को खोजने के लिए नई पंक्ति के लिए है
गिलियूम विंसेंट

19

आप यह कोशिश कर सकते हैं:

git log | grep Author: | sort | uniq

1
यह उनके .mailmap फ़ाइल को अपडेट करने में रुचि रखने वाले किसी के लिए सबसे उपयोगी कमांड है!
एही टूना

7

(उपयोगकर्ताओं ने जो किया है)

नोट: डिफ़ॉल्ट रूप से git shortlogसमूह लेखकों द्वारा करता है ।

यदि आपको उन्हें कमिटर्स द्वारा समूहित करने की आवश्यकता है, तो आपको Git 2.12 (Q1 2017) की आवश्यकता होगी

git shortlog -snc

जेफ किंग ( ) द्वारा देखें प्रतिबद्ध 03f4082 (16 दिसंबर 2016 )Linus Torvalds ( ) द्वारा प्रतिबद्ध fbfda15 (11 अक्टूबर 2016) देखें । (द्वारा विलय Junio सी Hamano - - में ad1b4e2 प्रतिबद्ध , 27 दिसंबर 2016)peff
torvalds
gitster

लाइनस टॉर्वाल्ड्स ने स्वयं इस सुविधा का परिचय दिया:

shortlog: कमिट जानकारी द्वारा समूह

कुछ स्थितियों में आप लेखक द्वारा नहीं, बल्कि कमिटर्स द्वारा समूहबद्ध करना चाहते हैं।

उदाहरण के लिए, जब मैं सिर्फ यह देखना चाहता था कि मैं अभी भी linux-nextवर्तमान मर्ज विंडो से क्या गायब हूं, तो मुझे इस बात की कोई परवाह नहीं है कि किसने पैच लिखा है, जैसा कि git treeयह कहा जाता है, जो आम तौर पर "किसने किया" यह "।

इसलिए git shortlog को समूहीकरण पर स्विच करने के लिए एक " -c" या " --committer" विकल्प चुनें।



1

मैं इसे अभी तक स्वयं परीक्षण करने के लिए नहीं मिला है, लेकिन यह एक गिट रिपॉजिटरी के लिए परियोजना के आंकड़ों के लिए बहुत अच्छा लग रहा है: https://github.com/visionmedia/git-extras

binविभिन्न लिपियों को देखने के लिए कैटलॉग देखें।

उदाहरण के लिए, git-countस्क्रिप्ट (कमिट प्रति गणना):

git shortlog -n $@ | grep "):" | sed 's|:||'

1
git shortlog -ns कम हैकिश लगता है
TomDLT

@TomDLT जब से मैंने 4 साल पहले यह पोस्ट किया था, git-extras में इस उदाहरण की स्क्रिप्ट बदल गई है। लेकिन मुझे लगता है कि git-extras जैसी परियोजनाओं से या लोगों के dotfiles से git स्क्रिप्ट देखने की मेरी सलाह अभी भी बहुत अच्छी सलाह है। यदि आप दिलचस्प git कमांड की तलाश कर रहे हैं, तो मैं गैरी बर्नहार्ट के डॉटफाइल्स की भी सिफारिश करूँगा: github.com/garybernhardt/dotfiles/tree/master/bin
डैनियल ली

1

@ Ped_-nascimento द्वारा @mic_e और अन्य लोगों द्वारा पहले से ही समस्या का शानदार जवाब।

इसके अलावा, आप निम्न पंक्ति को अपने साथ जोड़ सकते हैं .gitconfig

contributors = shortlog -e --summary --numbered

या शेल प्रकार में

git config --global alias.contributors 'shortlog -e --summary --numbered'

और उसके बाद आप बस चालान कर सकते हैं: git contributors


1
आप शायद एक ध्यान दें कि यह निर्धारित करने के बाद आप बस फोन कर सकते हैं जोड़ने चाहिएgit contributors
lohfu

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.