2011-10-28 12 views
26

या, निर्दिष्ट उपयोगकर्ता के लिए सूची के लिए git whatchanged कमांड का उपयोग कैसे करें? क्या कोई भी स्क्रिप्टिंग तरीका नहीं है? (बिल्टिन गिट कमांड)गिट से दो तिथियों के बीच निर्दिष्ट उपयोगकर्ता के लिए diff कैसे प्राप्त करें?

उत्तर

35

मेरा मानना ​​है कि अंतर जानने के लिए कोई ऐसा तरीका नहीं है।

आज के रूप में आप निम्न कर सकते हैं:

git log --since "OCT 4 2011" --until "OCT 11 2011" --pretty=format:"%H" 

और फिर पहली और आखिरी संशोधनों के बीच git diff। यदि संशोधन सूची बहुत लंबी है, तो पहले और अंतिम संशोधन प्राप्त करने के लिए और | tail -1 के साथ उपरोक्त git log ... का उपयोग करें।

ध्यान दें कि ऊपर Git लॉग 5 अक्टूबर 6 अक्टूबर, ..., अक्टूबर से 10

+0

आप की _sort_ यह सीधे कर सकते हैं diff के साथ नहीं, बल्कि इसलिए मज़बूती से, '@ {date}' अंकन, उदाहरण के लिए, 'Git diff @ {DATE1} का उपयोग करते हुए @ {DATE2}'। इसके साथ समस्या यह है कि '@ {date}' निर्माण प्रतिबद्धता इतिहास को दिनांक-प्रतिबद्धता आईडी में अनुवाद करने के लिए नहीं देखता है, बल्कि इसके बजाय _revlog_ का उपयोग करता है। नतीजा यह है कि यदि आप _really अक्सर_ खींचते हैं, तो आपके revlog में पर्याप्त जानकारी होगी जो उपर्युक्त हो सकता है जो उपरोक्त हो सकता है, लेकिन यदि आप _don't_ नहीं करते हैं, तो परिणाम गलत होंगे ... – snogglethorpe

+0

मुझे बराबर चिह्न जोड़ना पड़ा इसे काम करने के लिए: '' 'git log --since =" एफईबी 1 2014 "--until =" एफईबी 30 2014 "' ' – bonyiii

4

यह संभव है के लिए संशोधन बिल्कुल दिया तिथियों के बीच, यानी संशोधन वापस आ जाएगी, और उपयोगकर्ता/committer साथ मापदंड:

git log --after="2015-10-14" --before="2015-10-21" --grep="MB[FT][0-9-]*" --author="John\|Mary" 

यह उन की तारीख के बीच कुछ भी

  • से मेल खाएगी
  • नामों से मेल खाने वाले लेखकों द्वारा JohnयाMary
  • जहां प्रतिबद्ध संदेश में शामिल है (उदा। एक जिरा टिकट नंबर के रूप में MBT या MBF प्लस एक संख्या-कोड जिसमें - char शामिल हो सकता है।
+0

यह लॉग प्रदर्शित करता है, लेकिन एक diff नहीं। – pingu

0
git log --since "MAY 1 2017" --until "MAY 31 2017" -p --author="Jack" > diffJackMay.patch 
संबंधित मुद्दे