मैं केवल एक उपयोगकर्ता के हिट के git लॉग को कैसे देख सकता हूं?


1255

उपयोग करते समय git log, मैं उपयोगकर्ता द्वारा कैसे फ़िल्टर कर सकता हूं ताकि मैं केवल उस उपयोगकर्ता से कमिट देखूं?


4
क्या एक ही चीज़ को सीधे देखने का कोई तरीका है github?
वडकोरुवेस्ट

1
गितुब पर ऐसा करने के लिए: stackoverflow.com/a/23515164/26510
ब्रैड पार्क

जवाबों:


1713

यह दोनों git logऔर gitk- इतिहास को देखने के 2 सबसे सामान्य तरीकों के लिए काम करता है ।
आपको पूरे नाम का उपयोग करने की आवश्यकता नहीं है:

git log --author="Jon"

"जोनाथन स्मिथ" द्वारा की गई एक कमेटी से मैच करेगा

git log --author=Jon

तथा

git log --author=Smith

काम भी करेगा। यदि आपको किसी स्थान की आवश्यकता नहीं है, तो उद्धरण वैकल्पिक हैं।

जोड़े --allयदि आप सभी शाखाओं खोज करने के लिए चाहते हैं और न सिर्फ वर्तमान अपने रेपो में पूर्वजों के लिए प्रतिबद्ध।

आप आसानी से कई लेखकों पर भी मेल कर सकते हैं क्योंकि regex इस फ़िल्टर के लिए अंतर्निहित तंत्र है। तो जोनाथन या एडम द्वारा कमिट करने के लिए, आप यह कर सकते हैं:

git log --author="\(Adam\)\|\(Jon\)"

एक विशेष लेखक या लेखकों के सेट को बाहर करने के लिए इस प्रश्न के रूप में नियमित रूप से अभिव्यक्ति का उपयोग करते हुए लेखकों का सेट , आप स्विच के साथ संयोजन में एक नकारात्मक रूपांतर का उपयोग कर सकते हैं --perl-regexp:

git log --author='^(?!Adam|Jon).*$' --perl-regexp

वैकल्पिक रूप से, आप एडम द्वारा उपयोग bashऔर पाइपिंग द्वारा लिखित कमिट को बाहर कर सकते हैं :

git log --format='%H %an' | 
  grep -v Adam | 
  cut -d ' ' -f1 | 
  xargs -n1 git log -1

आप एडम द्वारा प्रतिबद्ध प्रतिबद्ध (लेकिन जरूरी नहीं लेखक) को बाहर निकालना चाहते हैं, की जगह %anके साथ %cn। इसके बारे में अधिक विवरण मेरी ब्लॉग पोस्ट में हैं: http://dymitruk.com/blog/2012/07/18/filtering-by-author-name/


9
क्या इसके विपरीत करने का कोई तरीका है? कहते हैं - मैं जॉन के अलावा सभी कमिट्स देखना चाहता हूं।
इयान रॉबिन्सन

4
@ आईआईएन फॉर गिट हेल्प लॉग "जॉन" एक नियमित अभिव्यक्ति है, इसलिए इसे बहुत आसान होना चाहिए
रात

2
git log --format =% a | egrep -v 'जॉन *' | xargs -n 1 git log -1
एडम डाइमिट्रुक

4
gitkमाता-पिता को अन्य लेखकों से छोड़ने का कोई तरीका ? (उन्हें सफेद हलकों के साथ दिखाया गया है।) इसके विपरीत, git log --graphमाता-पिता को नहीं दिखाते; यह केवल दिए गए लेखक के कमिट्स को दर्शाता है। मैं उसी आउटपुट को देखना पसंद करूंगा gitk(पहले से जाँच की गई वरीयताएँ और दृश्य देखें - कुछ भी उपयोगी नहीं पा सके।)
ADTC

2
खबरदार यह मामला संवेदनशील है
चिले दस ब्रिंक


44

गितुब पर भी एक गुप्त तरीका है ...

आप परम को जोड़कर प्रतिबद्ध दृश्य में लेखक द्वारा फ़िल्टर कर सकते हैं ?author=github_handle। उदाहरण के लिए, लिंक https://github.com/dynjs/dynjs/commits/master?author=jingweno , डायनाज प्रोजेक्ट के कमिट की सूची दिखाता है


1
शाखाओं के पार देखने का कोई तरीका? कुछ करता है / सभी तरह?
whizcreed

आपको यह कैसे लगी? क्या अन्य झंडे समर्थित हैं?
वुडरो बारलो

1
pro.mean का जवाब इंटरफ़ेस के माध्यम से ऐसा करने के लिए कैसे: stackoverflow.com/a/39123694/1225617
एडम मिलरचिप

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

सवाल सिर्फ गिट लॉग को देखने का था - तकनीक की परवाह किए बिना। तो यह जवाब बिल ठीक है।
slott

31
git help log

आपको git लॉग का पेज देता है। "लेखक" के लिए वहाँ खोजें / फिर "लेखक" टाइप करके, उसके बाद दर्ज करें। संबंधित अनुभाग को प्राप्त करने के लिए कुछ बार "एन" टाइप करें, जो पता चलता है:

git log --author="username"

जैसा कि पहले ही सुझाव दिया गया है।

ध्यान दें कि यह आपको कमिट्स का लेखक देगा, लेकिन Git में, लेखक कमिटर से अलग कोई हो सकता है (उदाहरण के लिए लिनक्स कर्नेल में, यदि आप एक साधारण उपयोगकर्ता के रूप में एक पैच सबमिट करते हैं, तो वह किसी अन्य प्रशासनिक उपयोगकर्ता द्वारा प्रतिबद्ध हो सकता है। ।) Git में लेखक और कमिटर के बीच अंतर देखें ? अधिक जानकारी के लिए)

अधिकांश समय, जो उपयोगकर्ता के रूप में संदर्भित करता है वह कमिटेटर और लेखक दोनों है।


21
@ जेम्स मुझे लगता है कि आपकी नकारात्मकता यहाँ अनुचित है। मैं बस उसे यह सिखाने की कोशिश कर रहा था कि वह भूल जाने की स्थिति में कमांड लाइन से कैसे दिख सकता है। मुझे लगता है कि आप मुझे उस व्यक्ति के लिए गलत समझ रहे हैं जो सिर्फ आरटीएफएम कहता है, लेकिन मैंने अपनी प्रतिक्रिया में उत्तर को शामिल किया।
ustun

11
यह नकारात्मकता नहीं है। यह तथ्य है कि लोग यहां सलाह के लिए आते हैं, और बहुत से लोग आरटीएफएम के कुछ संस्करण के साथ प्रतिक्रिया करना चाहते हैं। बिरादरी के लिए खराब है।
जेम्स

11
@ जेम्स मुझे यहाँ ustun से सहमत होना है। वह किया था सवाल का जवाब, और वह इस सवाल का जवाब है जो अन्य Git से संबंधित प्रश्नों के उत्तर खोजने के लिए उपयोगी है खोजने के लिए एक रणनीति की पेशकश की।
पीटर

4
मुझे नहीं लगता कि यह इस रूप में काफी काला और सफेद है। अब, मैं इस बात से सहमत हूं कि हमें लोगों को शिक्षित करना चाहिए कि वे अपने लिए कैसे करें - यह एक अच्छा विचार है। जहां अशांति थोड़ी गलत हुई, वह धारणा बना रही है कि) ओपी जानता है कि आदमी पृष्ठ कैसे खोजे, और इससे भी महत्वपूर्ण बात यह है कि ओपी 'लेखक' की खोज करना जानता है। उन्होंने 'कमिटेटर' या 'नाम' या कुछ और खोजा होगा।
जॉन हंट

6
@ जॉन हंट आप सही हैं, यह मेरे लिए कभी नहीं समझा गया कि खोज का क्या मतलब है और यह कैसे किया जाता है। इसे ग्रहण किया गया। पाठ को थोड़ा ठीक करना।
ustun

23

अधिक विवरण खींचने के लिए - (यहाँ %anलेखक को संदर्भित करता है)

इसे इस्तेमाल करो :-

git log --author="username" --pretty=format:"%h - %an, %ar : %s"

और यदि आप चाहते हैं कि उनके ईमेल पते के %aeबजाय प्रारूप का उपयोग करें %an(जो नाम दिया गया है।)
MarkHu

--authorवास्तव में लेखक के नाम से खोज करता है और कमिट नाम से नहीं। मैं "username"लेखक के लिए
अल्गोरिथमेटिक


14

यदि आप अपने स्वयं के कमिट को फ़िल्टर करना चाहते हैं:

git log --author="<$(git config user.email)>"

1
यह उद्धरण और कोष्ठक के बिना भी काम करता है (कम से कम गिट बश और उबंटू बैश पर)।
लवामंटिस

12

आप उपयोगकर्ता के नाम के केवल भाग का उपयोग करके इसे थोड़ा संक्षिप्त भी कर सकते हैं:

git log --author=mr  #if you're looking for mrfoobar's commits

11

इस उपकरण का प्रयास करें आज़माएं https://github.com/kamranahmedse/git-standup

प्रयोग

```bash
$ git standup [-a <author name>] 
              [-w <weekstart-weekend>] 
              [-m <max-dir-depth>]
              [-f]
              [-L]
              [-d <days-ago>]
              [-D <date-format>] 
              [-g] 
              [-h]
```

नीचे प्रत्येक झंडे के लिए विवरण दिया गया है

- `-a`      - Specify author to restrict search to (name or email)
- `-w`      - Specify weekday range to limit search to (e.g. `git standup -w SUN-THU`)
- `-m`      - Specify the depth of recursive directory search
- `-L`      - Toggle inclusion of symbolic links in recursive directory search
- `-d`      - Specify the number of days back to include
- `-D`      - Specify the date format for "git log" (default: relative)
- `-h`      - Display the help screen
- `-g`      - Show if commit is GPG signed or not
- `-f`      - Fetch the latest commits beforehand

6

चूंकि दूसरा सवाल था (संभवतः गलत तरीके से?) लॉक किया गया था, मैं इसे यहां डालूंगा:

लेखकों को उनकी प्रतिबद्धताओं के साथ दिखाएं:

git shortlog -nse

विशिष्ट USERNAME के ​​लिए सभी कमिट ढूंढें:

git log --author=USERNAME --oneline | awk '{print $1}' | xargs git show

5

अपने .bashrc फ़ाइल में इस छोटे स्निपेट को जोड़कर x उपयोगकर्ता के लिए लॉग की n संख्या दिखाएं।

gitlog() {
    if [ "$1" ] && [ "$2" ]; then
       git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n "$1" --author="$2"
    elif [ "$1" ]; then
       git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n "$1"
    else
        git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order
    fi
}

alias l=gitlog

फ्रैंक द्वारा अंतिम 10 हिट दिखाने के लिए:

l 10 frank

किसी के द्वारा किए गए अंतिम 20 को दिखाने के लिए:

l 20


4

GitHub का उपयोग करने पर:

  • शाखा में जाओ
  • कमिट पर क्लिक करें

यह नीचे प्रारूप में सूची दिखाएगा

branch_x: < comment> 
author_name committed 2 days ago
  • व्यक्तिगत लेखक की प्रतिबद्धता को देखने के लिए; author_name पर क्लिक करें और वहाँ आप उस शाखा पर उस लेखक के सभी कमिट देख सकते हैं

2
वह बहुत सारे क्लिक और मान लेता है कि होस्ट git repo है। सीएलआई का उत्तर नहीं देता है जैसा कि ऊपर के कई लोगों ने किया है।
लैकोस्टेनकोडर

1
@lacostenycoder लेकिन यह उपयोगी जानकारी है, विशेष रूप से इतने सारे गिट प्रोजेक्ट GitHub पर हैं!
एडम मिलरचिप

2

आप या तो = या "स्पेस" का उपयोग कर सकते हैं। उदाहरण के लिए दो आदेशों का पालन करते हुए समान लौटाएं

git log --author="Developer1"

git log --author "Developer1"

1

मेरा मामला: मैं स्रोत वृक्ष का उपयोग कर रहा हूं, मैंने निम्नलिखित चरणों का पालन किया:

  1. दब गया CRL+3
  2. परिवर्तित ड्रॉपडाउन लेखक
  3. "विनोद कुमार" नाम टाइप किया

यहां छवि विवरण दर्ज करें


1

हालांकि, कई उपयोगी जवाब हैं। जबकि, इसके लिए सिर्फ एक और तरीका जोड़ना है। आप भी उपयोग कर सकते हैं

git shortlog --author="<author name>" --format="%h %s"

यह आउटपुट को समूहीकृत तरीके से दिखाएगा:

<Author Name> (5):
  4da3975f dependencies upgraded
  49172445 runtime dependencies resolved
  bff3e127 user-service, kratos, and guava dependencies upgraded
  414b6f1e dropwizard :- service, rmq and db-sharding depedencies upgraded
  a96af8d3 older dependecies removed

यहां, <Author Name>वर्तमान शाखा के तहत कुल 5 कमिट किए जाते हैं । जबकि, आप git रिपॉजिटरी में --allहर जगह (सभी शाखाओं) खोज को लागू करने के लिए भी उपयोग कर सकते हैं ।

एक कैच: git आंतरिक रूप <author name>से git डेटाबेस में लेखक के नाम और ईमेल के साथ एक इनपुट से मेल खाने की कोशिश करता है । यह केस-संवेदी है

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