मुझे लगता है कि rev-list
वह है जो आप चाहते हैं।
इस प्रयास करें:
git rev-list --no-merges '^<24-hour-old-commit>' HEAD
कि सभी गैर-मर्ज करता है कि HEAD
प्रतिबद्ध से पहुंचा जा सकता है, लेकिन से प्रतिबद्ध <24-hour-old-commit>
से पहुंच योग्य नहीं सूचीबद्ध करना चाहिए।
उदाहरण के लिए, इस संशोधन के ग्राफ में, यह सूचीबद्ध करेंगे अपर केस करता है, लेकिन नहीं लोअर केस:
a - b - c - 24h - H - i - J - K - HEAD
\ /
D - E - F - G '
प्रतिबद्धता H
, J
, K
, और HEAD
24 से सभी युवा घंटे पुराने हैं। Commit i
भी छोटा है, लेकिन इसे छोड़ दिया गया है क्योंकि यह एक विलय प्रतिबद्ध है। D
, E
, F
, और G
कोई भी उम्र हो सकती है, लेकिन केवल पिछले 24 घंटों में ही विलय हो गई है, इसलिए वे भी सूचीबद्ध हैं। के रूप में आप git log
साथ है
उपरोक्त आदेश के भीतर, --max-age
या --since
विकल्प एक ही समस्या है, लेकिन वे तुम्हारे लिए <24-hour-old-commit>
लगाने के लिए इस्तेमाल किया जा सकता:
git rev-list -n1 --before="24 hours" --first-parent HEAD
है यही कारण है कि, "देना केवल 1 प्रतिबद्ध आईडी, जो कम से कम 24 घंटे पुरानी होनी चाहिए, और वर्तमान शाखा पर है "।
यह सबको एक साथ रखें:
git rev-list --no-merges HEAD \
--not $(git rev-list -n1 --before="24 hours" --first-parent HEAD)
(नोट: --not abcdef
एक और तरीका छोड़कर यह तर्क निम्नलिखित सभी पर लागू होने वाला है, इसलिए विकल्प को पुन: क्रम ^abcdef
कहने के लिए है।)
डिफ़ॉल्ट उत्पादन rev-list
का सिर्फ कच्चे संशोधन है, लेकिन आप इसे विकल्प का उपयोग करके git log
पर अधिक बना सकते हैं। --pretty=short
लगभग उतना ही है जितना आप उपयोग करते हैं।
'--no-merges' के बजाय, 'पूर्व-माता-पिता' बेहतर काम कर सकता है? – ams
@ams जो केवल मर्ज काम दिखाएगा। मुझे पिछले 24 घंटों में 'मास्टर' शाखा में जोड़ा गया मर्ज किए गए कामों की आवश्यकता नहीं है। – WonderCsabo