उपयोग करते समय git log
, मैं उपयोगकर्ता द्वारा कैसे फ़िल्टर कर सकता हूं ताकि मैं केवल उस उपयोगकर्ता से कमिट देखूं?
उपयोग करते समय git log
, मैं उपयोगकर्ता द्वारा कैसे फ़िल्टर कर सकता हूं ताकि मैं केवल उस उपयोगकर्ता से कमिट देखूं?
जवाबों:
यह दोनों 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/
gitk
माता-पिता को अन्य लेखकों से छोड़ने का कोई तरीका ? (उन्हें सफेद हलकों के साथ दिखाया गया है।) इसके विपरीत, git log --graph
माता-पिता को नहीं दिखाते; यह केवल दिए गए लेखक के कमिट्स को दर्शाता है। मैं उसी आउटपुट को देखना पसंद करूंगा gitk
। (पहले से जाँच की गई वरीयताएँ और दृश्य देखें - कुछ भी उपयोगी नहीं पा सके।)
git log --author="that user"
गितुब पर भी एक गुप्त तरीका है ...
आप परम को जोड़कर प्रतिबद्ध दृश्य में लेखक द्वारा फ़िल्टर कर सकते हैं ?author=github_handle
। उदाहरण के लिए, लिंक https://github.com/dynjs/dynjs/commits/master?author=jingweno , डायनाज प्रोजेक्ट के कमिट की सूची दिखाता है
git help log
आपको git लॉग का पेज देता है। "लेखक" के लिए वहाँ खोजें / फिर "लेखक" टाइप करके, उसके बाद दर्ज करें। संबंधित अनुभाग को प्राप्त करने के लिए कुछ बार "एन" टाइप करें, जो पता चलता है:
git log --author="username"
जैसा कि पहले ही सुझाव दिया गया है।
ध्यान दें कि यह आपको कमिट्स का लेखक देगा, लेकिन Git में, लेखक कमिटर से अलग कोई हो सकता है (उदाहरण के लिए लिनक्स कर्नेल में, यदि आप एक साधारण उपयोगकर्ता के रूप में एक पैच सबमिट करते हैं, तो वह किसी अन्य प्रशासनिक उपयोगकर्ता द्वारा प्रतिबद्ध हो सकता है। ।) Git में लेखक और कमिटर के बीच अंतर देखें ? अधिक जानकारी के लिए)
अधिकांश समय, जो उपयोगकर्ता के रूप में संदर्भित करता है वह कमिटेटर और लेखक दोनों है।
अधिक विवरण खींचने के लिए - (यहाँ %an
लेखक को संदर्भित करता है)
इसे इस्तेमाल करो :-
git log --author="username" --pretty=format:"%h - %an, %ar : %s"
%ae
बजाय प्रारूप का उपयोग करें %an
(जो नाम दिया गया है।)
--author
वास्तव में लेखक के नाम से खोज करता है और कमिट नाम से नहीं। मैं "username"
लेखक के लिए
cat | git log --author="authorName" > author_commits_details.txt
यह आपके प्रारूप को पाठ प्रारूप में देता है।
cat |
?
यदि आप अपने स्वयं के कमिट को फ़िल्टर करना चाहते हैं:
git log --author="<$(git config user.email)>"
इस उपकरण का प्रयास करें आज़माएं 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
अपने .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
GitHub का उपयोग करने पर:
यह नीचे प्रारूप में सूची दिखाएगा
branch_x: < comment>
author_name committed 2 days ago
आप या तो = या "स्पेस" का उपयोग कर सकते हैं। उदाहरण के लिए दो आदेशों का पालन करते हुए समान लौटाएं
git log --author="Developer1"
git log --author "Developer1"
मेरा मामला: मैं स्रोत वृक्ष का उपयोग कर रहा हूं, मैंने निम्नलिखित चरणों का पालन किया:
CRL+3
हालांकि, कई उपयोगी जवाब हैं। जबकि, इसके लिए सिर्फ एक और तरीका जोड़ना है। आप भी उपयोग कर सकते हैं
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 डेटाबेस में लेखक के नाम और ईमेल के साथ एक इनपुट से मेल खाने की कोशिश करता है । यह केस-संवेदी है ।
github
?