क्या मुझे उन सभी फाइलों को बताने की हिम्मत मिल सकती है, जिन्हें एक उपयोगकर्ता ने संशोधित किया है?


147

मैं चाहता हूं कि मुझे एक उपयोगकर्ता द्वारा संशोधित सभी फाइलों की एक सूची दी जाए, जो सभी कमिट्स में हो।

मेरा विशेष उपयोग मामला यह है कि मैं रेल परियोजना पर एक रूबी के i18n में शामिल रहा हूं, और हम जानना चाहते हैं कि क्या फाइलें पहले ही हो चुकी हैं और क्या फाइलें अभी भी किए जाने की आवश्यकता है। प्रश्न में उपयोगकर्ताओं ने केवल i18n पर काम किया है, बाकी कोड आधार पर नहीं। तो जानकारी सभी को चाहिए, लेकिन मुझे यकीन नहीं है कि इसे कैसे निकाला जाए।

जवाबों:


127

यह एकमात्र तरीका नहीं है, लेकिन यह काम करता है:

git log --pretty="%H" --author="authorname" |
    while read commit_hash
    do
        git show --oneline --name-only $commit_hash | tail -n+2
    done | sort | uniq

या, एक पंक्ति के रूप में:

git log --pretty="%H" --author="authorname" | while read commit_hash; do git show --oneline --name-only $commit_hash | tail -n+2; done | sort | uniq

184

यह आपको फाइलों की एक सरल सूची देगा, और कुछ नहीं:

git log --no-merges --author="Pattern" --name-only --pretty=format:"" | sort -u

आवश्यक के रूप में - - के लिए स्विच - ऑनर।


1
--name-onlyउत्पादन कुछ भी नहीं बल्कि फ़ाइल नाम बनाने के लिए प्रकट होता है। उस तथ्य को देखते हुए, विकल्प --statऔर --pretty=format:""निपुण क्या हैं ? क्या आप उन्हें छोड़ सकते हैं?
योना

1
@ जोना - व्याख्या = प्रारूप: "" की जरूरत है। मैंने उत्तर संपादित किया।
इयान कीलिंग सेप

2
महान काम करता है, हालांकि एक छोटी सी गड़बड़: यह आउटपुट की शुरुआत में एक रिक्त लिंक का उत्पादन करता है, जिसका अर्थ है कि फ़ाइलों की एक गिनती प्राप्त करने के लिए 'wc -l' के माध्यम से परिणाम को पाइपिंग द्वारा बंद कर दिया जाता है
joachim

मैं कैसे हटाई गई फ़ाइलों को बाहर कर सकता हूं?
टिम बोलैंड

8

कोशिश करो git log --stat --committer=<user>। बस --committer=विकल्प पर उपयोगकर्ता का नाम डालें (या --author=उपयुक्त के रूप में उपयोग करें )।

यह प्रति प्रतिबद्ध सभी फ़ाइलों को थूक देगा, इसलिए कुछ दोहराव होने की संभावना होगी।


0
git log --pretty= --author=@abcd.com --name-only | sort -u | wc -l

Git repo में कंपनी द्वारा सभी संशोधित फ़ाइलें दिखाता है।

git log --pretty= --author=user@abcd.com --name-only | sort -u | wc -l

गिट रेपो में लेखक नाम 'उपयोगकर्ता' द्वारा सभी संशोधित फाइलें दिखाता है।

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