क्या प्रत्येक प्रविष्टि के साथ एक तिथि दिखाने के लिए git-reflog पैदा करने का एक तरीका है?


303

Git-reflog कमांड डिफ़ॉल्ट रूप से प्रत्येक प्रविष्टि के साथ एक तारीख नहीं दिखाता है, जो मुझे एक अजीब ओवरसाइट के रूप में मारता है; मुझे लगता है कि यह बहुत मददगार होगा।

क्या कोई कमांड-लाइन विकल्प, या अन्य ट्वीक्स हैं, जिन्हें यह दिखाने के लिए नियोजित किया जा सकता है कि प्रत्येक रिफ्लॉग प्रविष्टि कब जोड़ी गई? मैनपेज आगामी नहीं है ...

जवाबों:


451

जैसा कि मैन पेज लिखता है git log, git reflog --pretty=shortआप जैसे चाहें , किसी भी अन्य के लिए विकल्पों का उपयोग कर सकते हैं

प्रयत्न

git reflog --date=iso

11
यह दिनांक के साथ हेड नंबर (या जो भी सही शब्द है) को बदल देता है। क्या आपके पास दोनों हो सकते हैं?
मार्को एकस्टीन

7
@ मार्को ऐसा लगता है कि आपको एक कस्टम प्रारूप का उपयोग करना होगा git reflog --format='%C(auto)%h %<|(17)%gd %C(blue)%ci%C(reset) %s':। मैंने इसके लिए एक उपनाम जोड़ा है: github.com/blueyed/dotfiles/commit/…
ब्लू '23

1
@blueyed काफी समान नहीं है - रिफ्लॉग --date=isoकमांड में दिखाया गया है कि जब रिफ्लॉग एंट्री बनाई गई थी, तो कमिट का समय नहीं था। अभी भी अपने उपनाम की सराहना करते हैं, जैसा कि मैंने इसका इस्तेमाल एक प्रीटीयर रिफ्लॉग बनाने के लिए किया है।
जोहान हेनकेन्स

36

आप इसके --walk-reflogsप्रकार का उपयोग कर सकते हैं git log:

git log -g

यह डिफ़ॉल्ट रूप से क्रिया है, और अन्य चीजों के बीच तारीख को प्रिंट करता है। आप इसे मानक के साथ प्रारूपित कर सकते हैं--pretty= ध्वज के ।

आप --pretty=आउटपुट को प्रारूपित करने के लिए सीधे ध्वज के साथ रीफ़्लॉग कमांड का भी उपयोग कर सकते हैं ।

git reflog --pretty='%cd %h %gd %gs'

ऊपर दिए गए प्रारूप %cdमें, सामान्य रीफ़्लो आउटपुट के बाईं ओर प्रतिबद्ध दिनांक दिखाता है।


9
%cdदिखाता है, कि, मैं, (या ओपी) के बाद क्या है: नहीं, तो हम रिफ्लॉग एंट्री की तारीख चाहते हैं।
थानाटोस

10
git log --walk-reflogs --date=isoअभी-अभी मेरा दिन बना
४१ पर Alois Mahdal

7

आपको एक कस्टम प्रारूप का उपयोग करना होगा:

git reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)'

उपरोक्त प्रारूप में, %hकमिट हैश %crहै, सापेक्ष कमिट डेट %gsहै, रिफ्लोग विषय है, और, %sयह कमिट विषय है। को देखो Git-लॉग डॉक्स अन्य संभावित प्लेसहोल्डर के लिए। उदाहरण के लिए, %ciइसके बजाय %crपूर्ण प्रतिबद्ध दिनांक दिखाएंगे।

आप इसे अपने ~ / .itconfig में कस्टम prettyप्रारूप का उपयोग करके सहेज सकते हैं और इसे अन्य नाम से संदर्भित कर सकते हैं:

[alias]
    rl = reflog --pretty=reflog
[pretty]
    reflog = %C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)

1
इस के साथ समस्या यह है कि के %gdरूप में एक ही तारीख नहीं दिखाती @{now}है। रिफ्लॉग की खोज करते समय, सटीक समय जानना वास्तव में महत्वपूर्ण हो सकता है ("मुझे पता है कि यह 8:57 पर सही स्थिति में था" उदाहरण के लिए)।
ErikE

2
crcigit reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%ci%C(reset) %gs (%s)'
@ एरिक

6

बताइए gitकि किस प्रारूप में, या तो reflogप्रविष्टियाँ या समयबद्ध reflogप्रविष्टियाँ गिनाई गई हैं

$ git reflog @{now}

$ git reflog @{0}

मुझ में प्रोग्रामर अंदर "प्राकृतिक भाषा" की तारीखों को पसंद नहीं करता है {}, लेकिन खुशी से यह तकनीक भी काम करती है --date=iso
20

5

नोट git 2.10 (Q3 2016) के साथ दिनांक के बारे में प्रलेखन में सुधार करता है git reflog

देखें 642833d , 1a2a1e8 (27 जुलाई 2016) के लिए प्रतिबद्ध , और d38c7b2 , 522259d के लिए प्रतिबद्ध , 83c9f95 , 2b68222 (22 जुलाई 2016) को जेफ किंग ( peff) के लिए प्रतिबद्ध करें
मदद-द्वारा: जेफ किंग ( peff)
( जूनियो सी gitsterहमानो द्वारा विलय - - में 0d32799 , 08 अगस्त 2016)

rev-listविकल्प अद्यतन किया जाता है :

आउटपुट में रिफ्लग डिज़ाइनर को कुछ नियमों के आधार पर ref@{Nth}(जहाँ Nthरिफ्लॉग में रिवर्स-कालानुक्रमिक सूचकांक) या ref@{timestamp}(उस प्रविष्टि के लिए टाइमस्टैम्प के साथ ) के रूप में दिखाया जा सकता है।

इसमें शामिल हैं : - के बारे में एक अद्यतन --date=raw:

युग (1970-01-01 00:00:00 यूटीसी) के बाद से सेकंड के रूप में तारीख दिखाता है, इसके बाद एक स्थान है, और फिर यूटीसी से ऑफसेट के रूप में समयक्षेत्र ( +या -चार अंकों के साथ; पहले दो घंटे हैं;) दूसरे दो मिनट हैं)।
यानी, जैसे कि टाइमस्टैम्प को प्रारूपित किया गया था strftime("%s %z"))।
ध्यान दें कि -localविकल्प seconds-since-epoch मूल्य को प्रभावित नहीं करता है (जो हमेशा यूटीसी में मापा जाता है), लेकिन साथ-साथ समय क्षेत्र मूल्य को स्विच करता है।

और एक नया विकल्प: --date=unix

एक यूनिक्स युगीन टाइमस्टैम्प (1970 के बाद से सेकंड) के रूप में तारीख दिखाता है।
जैसा कि --raw, यह हमेशा यूटीसी में है और इसलिए -localइसका कोई प्रभाव नहीं है।

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