Git लॉग डेट फॉर्मेट कैसे बदलें


150

मैं Git के भीतर अंतिम प्रतिबद्ध प्रदर्शित करने की कोशिश कर रहा हूं, लेकिन मुझे एक विशेष प्रारूप में तारीख की आवश्यकता है।

मुझे पता है कि लॉग सुंदर प्रारूप प्रारूप का %adसम्मान करता है --date, लेकिन एकमात्र --dateप्रारूप जो मुझे मिल सकता है वह "संक्षिप्त" है। मैं दूसरों को जानना चाहता हूं, और क्या मैं एक कस्टम बना सकता हूं जैसे:

git -n 1 --date=**YYMMDDHHmm** --pretty=format:"Last committed item in this release was by %%an, %%aD, message: %%s(%%h)[%%d]"

1
मैं हमेशा इस तरह के प्रश्नों के लिए एक उत्कृष्ट संसाधन होने के लिए आधिकारिक लिनक्स कर्नेल गिट प्रलेखन पाता हूं ।

2
नोट: आप अब (नवंबर 2014, Git 2.2) है --date=iso-strict: नीचे मेरा जवाब देखें
VONC

4
गिट 2.7 (Q4 2015) के साथ, आप किसी भी तारीख के प्रारूप के लिए स्थानीय समयक्षेत्र का उपयोग करने के लिए कह सकते हैं ! देखें नीचे मेरा उत्तर । इसका मतलब यह है कि, इसके अलावा --date=(relative|local|default|iso|iso-strict|rfc|short|raw), आपके पास भी होगा:--date=(relative-local|default-local|iso-local|iso-strict-local|rfc-local|short-local|raw-local)
वॉन सी सी

जवाबों:


167

अन्य हैं (से git help log):

--date=(relative|local|default|iso|rfc|short|raw)
  Only takes effect for dates shown in human-readable format,
  such as when using "--pretty".  log.date config variable
  sets a default value for log command’s --date option.

--date=relative shows dates relative to the current time, e.g. "2 hours ago".

--date=local shows timestamps in user’s local timezone.

--date=iso (or --date=iso8601) shows timestamps in ISO 8601 format.

--date=rfc (or --date=rfc2822) shows timestamps in RFC 2822 format,
  often found in E-mail messages.

--date=short shows only date but not time, in YYYY-MM-DD format.

--date=raw shows the date in the internal raw git format %s %z format.

--date=default shows timestamps in the original timezone
  (either committer’s or author’s).

कोई अंतर्निहित तरीका नहीं है कि मैं एक कस्टम प्रारूप बनाना जानता हूं, लेकिन आप कुछ शेल जादू कर सकते हैं।

timestamp=`git log -n1 --format="%at"`
my_date=`perl -e "print scalar localtime ($timestamp)"`
git log -n1 --pretty=format:"Blah-blah $my_date"

यहां पहला कदम आपको मिलीसेकंड टाइमस्टैम्प मिलता है। आप दूसरी पंक्ति को उस टाइमस्टैम्प को प्रारूपित करने के लिए बदल सकते हैं, जो आप चाहते हैं। यह उदाहरण आपको --date=localगद्देदार दिन के समान कुछ देता है।


और यदि आप हर बार इसे टाइप किए बिना स्थायी प्रभाव चाहते हैं, तो प्रयास करें

git config log.date iso 

या, इस खाते के साथ अपने सभी उपयोग पर प्रभाव के लिए

git config --global log.date iso

15
और यदि आप हर बार इसे टाइप किए बिना स्थायी प्रभाव चाहते हैं, तो git config log.date isoइस खाते के साथ अपने सभी git config --global log.date iso
उपयोगों

12
आप अपने स्वयं के स्वरूपों का उपयोग कर सकते हैं। देख बेन Allred के जवाब । अकड़ के लिए --format:<args>पारित करेंगे <args>
कप्तान मैन

190

के अलावा --date=(relative|local|default|iso|iso-strict|rfc|short|raw), जैसा कि दूसरों ने उल्लेख किया है, आप एक कस्टम लॉग डेट फॉर्मेट का भी उपयोग कर सकते हैं

--date=format:'%Y-%m-%d %H:%M:%S'

यह कुछ इस तरह का उत्पादन करता है 2016-01-13 11:32:13

नोट: यदि आप नीचे दिए गए लिंक पर एक नज़र डालते हैं, तो मेरा मानना ​​है कि आपको कम से कम आवश्यकता होगीGit v2.6.0-rc0 काम करने के लिए ।

एक पूर्ण आदेश में यह कुछ इस तरह होगा:

git config --global alias.lg "log --graph --decorate 
-30 --all --date-order --date=format:'%Y-%m-%d %H:%M:%S' 
--pretty=format:'%C(cyan)%h%Creset %C(black bold)%ad%Creset%C(auto)%d %s'" 

मैं इसे कहीं भी प्रलेखन में नहीं पा सका हूं (यदि कोई जानता है कि इसे कहां ढूंढना है, तो कृपया टिप्पणी करें) इसलिए मुझे मूल रूप से परीक्षण और त्रुटि से प्लेसहोल्डर मिला।

इस पर प्रलेखन के लिए मेरी खोज में मैंने पाया खुद ही Git के लिए एक प्रतिबद्धता जो इंगित करती है कि प्रारूप को सीधे खिलाया गया है strftime। खोज करने वाले strftime( यहां या यहां ) प्लेसहोल्डर को मैंने पाया कि प्लेसहोल्डर्स सूचीबद्ध हैं।

प्लेसहोल्डर्स में शामिल हैं:

%a      Abbreviated weekday name
%A      Full weekday name
%b      Abbreviated month name
%B      Full month name
%c      Date and time representation appropriate for locale
%d      Day of month as decimal number (01 – 31)
%H      Hour in 24-hour format (00 – 23)
%I      Hour in 12-hour format (01 – 12)
%j      Day of year as decimal number (001 – 366)
%m      Month as decimal number (01 – 12)
%M      Minute as decimal number (00 – 59)
%p      Current locale's A.M./P.M. indicator for 12-hour clock
%S      Second as decimal number (00 – 59)
%U      Week of year as decimal number, with Sunday as first day of week (00 – 53)
%w      Weekday as decimal number (0 – 6; Sunday is 0)
%W      Week of year as decimal number, with Monday as first day of week (00 – 53)
%x      Date representation for current locale
%X      Time representation for current locale
%y      Year without century, as decimal number (00 – 99)
%Y      Year with century, as decimal number
%z, %Z  Either the time-zone name or time zone abbreviation, depending on registry settings
%%      Percent sign

एक पूर्ण आदेश में यह कुछ इस तरह होगा

git config --global alias.lg "log --graph --decorate -30 --all --date-order --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%C(cyan)%h%Creset %C(black bold)%ad%Creset%C(auto)%d %s'" 

4
@ शिव: मैं हाल ही में एक ऐसे मामले में भाग गया, जहाँ यह काम नहीं किया और यह वही चीज हो सकती है जिसमें आप भाग रहे हैं। मैं Git के पुराने संस्करण के साथ युग्मन मशीन का उपयोग कर रहा था। जब मैंने Git अपडेट किया तो कस्टम तिथि प्रारूप काम करना शुरू कर दिया। यदि आप ऊपर दिए गए लिंक पर एक नज़र डालते हैं, तो मेरा मानना ​​है कि आपको कम से कम v2.6.0-rc0 की आवश्यकता होगी। दिया गया उदाहरण ठीक वही है जो मैं उपयोग करता हूं। एक पूर्ण आदेश में यह कुछ इस तरह होगाgit config --global alias.lg "log --graph --decorate -30 --all --date-order --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%C(cyan)%h%Creset %C(black bold)%ad%Creset%C(auto)%d %s'"
बेन एलेड

1
धन्यवाद बेन! मैंने आपकी आज्ञा को जैसे-तैसे चिपकाया और भाग गया git lgऔर मुझे अभी भी निम्न त्रुटि मिलती है। fatal: unknown date format format:%Y-%m-%d %H:%M:%S। मैं खिड़कियों पर गिट चला रहा हूं। यहाँ मेरा git संस्करण है। git version 1.9.5.msysgit.1। तो क्या मुझे नए संस्करण में अपग्रेड करना है?
शिव

हाय बेन, मैं पुराने संस्करण पर था। मैं नवीनतम और इस काम के लिए उन्नत हुआ। इसलिए मैंने इसे स्पष्ट करने के लिए आपके उत्तर को संपादित कर दिया (आपकी टिप्पणी को शीर्ष पर पहुंचा दिया) और आपको + 1-एड भी कर दिया! धन्यवाद!!
शिवा

यह एक इलाज काम करता है! सीएसवी को निर्यात करने के लिए एक साधारण बैश स्क्रिप्ट का उपयोग करते हुए, अब मैं वर्ष, महीने, सप्ताह आदि के लिए कॉलम रख सकता हूं। इसे प्यार करें।
जेमी टेलर

1
@EdRandall: यदि आप इसका जिक्र कर रहे हैं %X, ~ ~ मैंने इसे सिर्फ अपने मशीन पर आज़माया है और निश्चित रूप से अपने समय क्षेत्र में समय पा रहा हूँ। ~~ हम्म, अब मुझे यकीन नहीं है। मैंने अपने समय क्षेत्र में किसी से रेपो का क्लोन नहीं बनाया और फिर से कोशिश की। मुझे लगता है कि मुझे वर्तमान स्थानीय सेटिंग्स का उपयोग करके समय मिल रहा है, लेकिन समय क्षेत्र बंद हो गया है।
बेन ऑल्रेड

36

लंबे समय git logतक फॉर्मेट YYYY-MM-DDमें डेट को आउटपुट देने के तरीके की तलाश में एक तरह से काम करेगा less, मैं निम्नलिखित प्रारूप के साथ आया हूं:

%ad%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08

स्विच के साथ --date=iso

यह आईएसओ प्रारूप (एक लंबा) में तारीख को प्रिंट करेगा, और फिर 14 बार बैकस्पेस चरित्र (0x08) प्रिंट करेगा, जो मेरे टर्मिनल में, YYYY-MM-DD भाग के बाद प्रभावी रूप से सब कुछ हटा देता है। उदाहरण के लिए:

git log --date=iso --pretty=format:'%ad%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%aN %s'

यह कुछ इस तरह देता है:

2013-05-24 bruno This is the message of the latest commit.
2013-05-22 bruno This is an older commit.
...

मैंने जो किया वह lउपर्युक्त प्रारूप में कुछ ट्वीक्स के साथ एक उपनाम बनाया गया था । यह बाईं ओर के कमिट ग्राफ को दिखाता है, उसके बाद कमिट का हैश, उसके बाद का दिनांक, शॉर्टनेम, रिफ़ेन्सेस और सब्जेक्ट। उपनाम इस प्रकार है (~ / .gitconfig में):

[alias]
        l = log --date-order --date=iso --graph --full-history --all --pretty=format:'%x08%x09%C(red)%h %C(cyan)%ad%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08 %C(bold blue)%aN%C(reset)%C(bold yellow)%d %C(reset)%s'

2
यह मेरे लिए बहुत अच्छा काम करता है। 6% x08 का उपयोग करना मेरे लिए वास्तव में अनुगामी टाइमज़ोन को हटा देता है।
पेंघ गेंग

7
के बारे में क्या--date=short shows only date but not time, in YYYY-MM-DD format.
Paaske

3
Zsh और bash में यह आपको टर्मिनल पर आउटपुट दिखाता है, लेकिन यदि आप इसे किसी भी चीज़ में पाइप करते हैं, तो "बैकस्पेज़" डेटा अभी भी है। इसका मतलब यह है कि | sort | uniqकाम नहीं करते हैं।
१२'१४

5
यह एक ही समय में हास्यास्पद और भयानक है। मैं %C(bold cyan)%ai%x08%x08%x08%x08%x08%x08%x08%x08%x08%C(reset) %C(bold green)(%ar%x08%x08%x08%x08)%C(reset)प्रारूप प्राप्त करने के लिए उपयोग कर रहा हूं 2015-01-19 11:27 (11 days)। +1
0101

2
अब यह उत्तर stackoverflow.com/a/34778736/907576 अधिक उपयुक्त है (चूंकि git v2.6.0-rc0)
radistao

25

आप बहुत सारे %x08वर्णों से बचने के लिए फ़ील्ड ट्रंकेशन विकल्प का उपयोग कर सकते हैं । उदाहरण के लिए:

git log --pretty='format:%h %s%n\t%<(12,trunc)%ci%x08%x08, %an <%ae>'

के बराबर है:

git log --pretty='format:%h %s%n\t%ci%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08, %an <%ae>'

और आंखों पर थोड़ा आसान है।

बेहतर अभी भी, इस विशेष उदाहरण के लिए, का उपयोग %cdकरना सम्मान करेगा --date=<format>, इसलिए यदि आप चाहें YYYY-MM-DD, तो आप ऐसा कर सकते हैं %<और %x08पूरी तरह से बच सकते हैं :

git log --date=short --pretty='format:%h %s%n\t%cd, %an <%ae>'

मैंने अभी देखा कि यह मूल पोस्ट के संबंध में थोड़ा सा गोलाकार था, लेकिन मैं इसे उसी स्थिति में छोड़ दूंगा जब अन्य लोग यहां उसी खोज पैरामीटर के साथ पहुंचे जो मैंने किया था।


23

मुझे उसी चीज़ की ज़रूरत थी और मेरे लिए निम्नलिखित काम पाया:

git log -n1 --pretty='format:%cd' --date=format:'%Y-%m-%d %H:%M:%S'

--date=formatजहां तिथि उत्पादन स्वरूपों --prettyबताता है कि मुद्रित करने के लिए।


2
यह मेरे लिए काम नहीं करता है। मुझे "अज्ञात तिथि प्रारूप" मिलता है
रे

आपके पास कौन सा संस्करण है?
२१:

अपडेट किया गया का उपयोग कर medium.com/@katopz/how-to-upgrade-git-ff00ea12be18
शौकिया बरिस्ता

git log --pretty=format:"%h%x09%cd%x09%s" --date=format:'%Y-%m-%d %H:%M:%S %p'
शौकिया बरिस्ता

@amateurbarista अंतिम प्रतिबद्धता नहीं दिखाता है, अनुरोध पढ़ें। ar3 आखिरी कमिट दिखाने की कोशिश कर रहा है, आखिरी कमिट नहीं।
लाख_देव

16

" date=iso" प्रारूप से अवगत रहें : यह बिल्कुल ISO 8601 नहीं हैबीट बोल्ली ( ) , गेट 2.2.0 (नवंबर 2014)
के लिए प्रतिबद्ध " 466fb67 " देखेंbbolli

सुंदर: एक सख्त आईएसओ 8601 तारीख प्रारूप प्रदान करते हैं

गिट के "आईएसओ" तिथि प्रारूप वास्तव में छोटे अंतर के कारण आईएसओ 8601 मानक के अनुरूप नहीं है, और इसे आईएसओ 8601-केवल पार्सर्स द्वारा पार्स नहीं किया जा सकता है, जैसे कि एक्सएमएल टूलचिन्स।

--date=isoइन तरीकों से ISO 8601 से " " विचलन होता है:

  • के बजाय एक जगह Tतारीख / समय परिसीमन के
  • समय और समय क्षेत्र के बीच एक स्थान
  • समय क्षेत्र के घंटे और मिनट के बीच कोई बृहदान्त्र नहीं

कमिटर और लेखक तिथियों को प्रदर्शित करने के लिए एक सख्त आईएसओ 8601 तारीख प्रारूप जोड़ें।
' %aI' और ' %cI' प्रारूप निर्दिष्टकर्ताओं का उपयोग करें और ' --date=iso-strict' या ' --date=iso8601-strict' दिनांक स्वरूप नाम जोड़ें।

इस धागे को चर्चा के लिए देखें ।


11
date -d @$(git log -n1 --format="%at") +%Y%m%d%H%M

ध्यान दें कि यह आपके उपयोग के मामले में आपके स्थानीय समयक्षेत्र में परिवर्तित हो जाएगा।


धन्यवाद। मैंने इसे
22

5

Git 2.7 (Q4 2015) -localएक निर्देश के रूप में पेश करेगा ।
इसका अर्थ है कि, इसके अतिरिक्त:

--date=(relative|local|default|iso|iso-strict|rfc|short|raw)

आपके पास भी होगा:

--date=(default-local|iso-local|iso-strict-local|rfc-local|short-local)

-localप्रत्यय के साथ नहीं किया जा सकता rawया relativeसंदर्भ

अब आप स्थानीय समय-क्षेत्र का उपयोग करके किसी भी तारीख के प्रारूप के लिए पूछ सकते हैं । देख

देखें add00ba प्रतिबद्ध , प्रतिबद्ध 547ed71 (03 सितं, 2015) द्वारा जेफ राजा ( peff)
(द्वारा विलय Junio सी Hamano - gitster- में प्रतिबद्ध 7b09c45 , 05 अक्टूबर 2015)

विशेष रूप से, ऊपर से अंतिम (कम से कम add00ba) उल्लेख:

date: " local" ऑर्थोगोनल टू डेट फॉर्मेट बनाएं :

हमारे अधिकांश " --date" मोड दिनांक के प्रारूप के बारे में हैं: हम कौन सी वस्तुओं को दिखाते हैं और किस क्रम में हैं।
लेकिन " --date=local" थोड़ा सा विचित्र है। इसका मतलब है "सामान्य प्रारूप में तारीख दिखाएं, लेकिन स्थानीय समयक्षेत्र का उपयोग करना"।
हमारे द्वारा उपयोग किए जाने वाले समयक्षेत्र वास्तविक प्रारूप में रूढ़िवादी है, और इसका कोई कारण नहीं है कि हमारे पास "स्थानीयकृत iso8601" आदि न हो।

यह पैच " local" बूलियन फ़ील्ड को " struct date_mode" जोड़ता है , और एनम DATE_LOCALसे तत्व को date_mode_typeगिरा देता है (यह अब सिर्फ DATE_NORMALप्लस है local=1)।
नई सुविधा -localकिसी भी तिथि मोड ("जैसे," iso-local") को जोड़कर उपयोगकर्ताओं के लिए सुलभ है , और हम पीछे की संगतता के localलिए" default-local" एक उपनाम के रूप में " " बनाए रखते हैं ।


2
मुझे ध्यान देना चाहिए कि format-localकाम भी! इसलिए यह बहुत सही है कि पसंदीदा प्रारूप और स्थानीय के बीच शक्ति को मिलाएं।
अक्जेंट्री

5

प्रारूप विकल्प %aiवह था जो मैं चाहता था:

%ai: लेखक की तारीख, आईएसओ 8601 जैसा प्रारूप

--format="%ai"

5

मुझे एक विशेष प्रारूप में तारीख चाहिए।

Git 2.21 (Q1 2019) के साथ, एक नई तारीख का प्रारूप " --date=human" जो मौजूदा समय से कितना दूर है, यह इस बात पर निर्भर करता है कि वर्तमान समय में क्या शुरू किया गया है

" --date=auto" इस नए प्रारूप का उपयोग करने के लिए किया जा सकता है जब आउटपुट पेजर या टर्मिनल पर जा रहा है और अन्यथा डिफ़ॉल्ट प्रारूप।

प्रतिबद्ध देखें 110a6a1 , प्रतिबद्ध b841d4f (29 जनवरी 2019), और 038a878 , 2fd7c22 (21 जनवरी 2019) को स्टीफन पी। स्मिथ (``) द्वारा प्रतिबद्ध करेंLinus Torvalds ( ) द्वारा
देखें प्रतिबद्ध acdd377 (18 जनवरी 2019 )(द्वारा विलय Junio सी Hamano - - में प्रतिबद्ध ecbe1be 07 Feb 2019)torvalds
gitster

'मानव' तिथि प्रारूप प्रलेखन जोड़ें

दिनांक और समय की जानकारी को एक प्रारूप में प्रदर्शित करें कि लोग अन्य संदर्भों में दिनांक कैसे लिखते हैं।
यदि वर्ष को निर्दिष्ट नहीं किया जाता है, तो पाठक को जो तारीख दी जाती है, वह चालू वर्ष में है

निरर्थक सूचनाओं को प्रदर्शित न करके, पाठक अलग-अलग सूचनाओं पर ध्यान केंद्रित करता है
पैच gitजिस समय कमांड को निष्पादित किया जाता है उस समय कमांड चलाने वाली मशीन से प्राप्त जानकारी के आधार पर सापेक्ष तिथियों की रिपोर्ट करता है।

हालांकि यह प्रारूप, अधकचरी जानकारी को छोड़ कर मनुष्यों के लिए अधिक उपयोगी है, लेकिन ऐसा कुछ भी नहीं है जो इसे वास्तव में मानव बनाता है।
यदि ' relative' तारीख का प्रारूप पहले से लागू नहीं था, तो ' relative' का उपयोग करना उचित होगा।

humanदिनांक प्रारूप परीक्षण जोड़ें ।

जब humanसंदर्भ फ़ील्ड और स्थानीय कंप्यूटर की तारीख के बीच के अंतर के आधार पर कई क्षेत्रों का उपयोग किया जाता है।

  • ऐसे मामलों में जहां अंतर एक वर्ष से कम है, वर्ष क्षेत्र को दबा दिया जाता है।
  • यदि समय एक दिन से कम है; महीना और साल दबा रहता है।
check_date_format_human 18000       "5 hours ago"       #  5 hours ago
check_date_format_human 432000      "Tue Aug 25 19:20"  #  5 days ago
check_date_format_human 1728000     "Mon Aug 10 19:20"  #  3 weeks ago
check_date_format_human 13000000    "Thu Apr 2 08:13"   #  5 months ago
check_date_format_human 31449600    "Aug 31 2008"       # 12 months ago
check_date_format_human 37500000    "Jun 22 2008"       #  1 year, 2 months ago
check_date_format_human 55188000    "Dec 1 2007"        #  1 year, 9 months ago
check_date_format_human 630000000   "Sep 13 1989"       # 20 years ago

## प्रस्तावित ' auto' मोड को ' auto:' से बदलें

' human' प्रारूप को जोड़ने के अलावा , पैच ने उस autoकीवर्ड को जोड़ा जो मानव फ़ाइल को निर्दिष्ट करने के लिए वैकल्पिक तरीके के रूप में विन्यास फाइल में इस्तेमाल किया जा सकता है। 'ऑटो' को हटाने से ' human' फॉर्मेट इंटरफेस साफ हो जाता है।

fooयदि auto:fooवाक्यविन्यास का उपयोग करके पेजर का उपयोग किया जा रहा है, तो मोड ' ' को निर्दिष्ट करने की क्षमता को जोड़ा गया ।
इसलिए, यदि हम पेजर का उपयोग कर रहे हैं तो ' auto:human' डेट मोड डिफॉल्ट करता है human
तो आप कर सकते हैं:

git config --add log.date auto:human

git logजब तक आप चीजों को स्क्रिप्ट नहीं कर रहे हैं तब तक आपके " " कमांड मानव-सुपाठ्य प्रारूप को दिखाएंगे।


Git 2.24 (Q4 2019) ने कोड को सरल बनाया।

47b27c9 के लिए प्रतिबद्ध देखें , स्टीफन पी। स्मिथ (``) द्वारा 29f4332 (12 सितंबर 2019) प्रतिबद्ध(द्वारा विलय Junio सी Hamano - - में प्रतिबद्ध 36d2fca , 07 अक्टू 2019)
gitster

दिनांक कोड के लिए 'अभी' पास करना छोड़ दें

प्रतिबद्ध b841d4f ( humanपरीक्षण-उपकरण में प्रारूप जोड़ें , 2019-01-28, Git v2.21.0-rc0) ने एक get_time()फ़ंक्शन जोड़ा जो $GIT_TEST_DATE_NOWवातावरण में वर्तमान समय को ओवरराइड करने की अनुमति देता है।
इसलिए हमें अब उस चर की व्याख्या करने की आवश्यकता नहीं है cmd__date()

इसलिए, हम nowदिनांक फ़ंक्शन के माध्यम से " " पैरामीटर को पास करना बंद कर सकते हैं , क्योंकि कोई भी उनका उपयोग नहीं करता है।
ध्यान दें कि हमें यह सुनिश्चित करने की आवश्यकता है कि पिछले सभी कॉलर्स ने एक " now" पैरामीटर लिया है जो सही तरीके से उपयोग कर रहे हैं get_time()


2
git log -n1 --format="Last committed item in this release was by %an, `git log -n1 --format=%at | awk '{print strftime("%y%m%d%H%M",$1)}'`, message: %s (%h) [%d]"

विस्तृत करने के लिए परवाह? साथ ही, आपके उत्तर में पहले से ही एक लेखक क्षेत्र और इतिहास है। इस पर हस्ताक्षर करने की आवश्यकता नहीं है।
Kissaki

2

आईएसओ-जैसे प्रारूप से जिसे आप चाहते हैं उसे बदलने के लिए बैश और तारीख कमांड का उपयोग करें। मैं एक ऑर्ग-मोड दिनांक प्रारूप (और सूची आइटम) चाहता था, इसलिए मैंने ऐसा किया:

echo + [$(date -d "$(git log --pretty=format:%ai -1)" +"%Y-%m-%d %a %H:%M")] \
    $(git log --pretty=format:"%h %s" --abbrev=12 -1)

और परिणाम उदाहरण के लिए है:

+ [2015-09-13 Sun 22:44] 2b0ad02e6cec Merge pull request #72 from 3b/bug-1474631
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.