গিট লগের তারিখের ফর্ম্যাটগুলি কীভাবে পরিবর্তন করবেন


150

আমি গিটের মধ্যে শেষ প্রতিশ্রুতিটি প্রদর্শনের চেষ্টা করছি, তবে আমার একটি বিশেষ বিন্যাসে তারিখটি দরকার।

আমি জানি যে লগটি সুন্দর বিন্যাসটি ফর্ম্যাটটিকে %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, গিট 2.2) আছে --date=iso-strict: আমার উত্তর নীচে দেখুন
ভোনসি

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>strftime করতে।
ক্যাপ্টেন ম্যান

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'" 

আমি ডকুমেন্টেশনে এটি কোথাও খুঁজে পাচ্ছি না (যদি এটি কোথায় সন্ধান করতে হয় তবে যদি কেউ জানেন তবে দয়া করে মন্তব্য করুন) তাই আমি মূলত পরীক্ষার এবং ত্রুটির দ্বারা স্থানধারীদের খুঁজে পেয়েছি।

এটিতে নথিপত্রের জন্য আমার অনুসন্ধানে আমি গিটের কাছেই একটি প্রতিশ্রুতি পেয়েছি যা ইঙ্গিত করে যে বিন্যাসটি সরাসরি খাওয়ানো হয়েছে 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
@ শিভা: আমি সম্প্রতি একটি মামলায় দৌড়েছি যেখানে এটি কার্যকর হয়নি এবং এটি একই জিনিস হতে পারে যা আপনি চালিয়ে যাচ্ছেন। আমি গিটের পুরানো সংস্করণ সহ একটি জুড়ি মেশিন ব্যবহার করছিলাম। আমি যখন গিট আপডেট করেছি তখন কাস্টম ডেট ফর্ম্যাটটি কাজ শুরু করে। আপনি যদি উপরে বর্ণিত প্রতিশ্রুতিটি একবার দেখে থাকেন তবে আমি বিশ্বাস করি আপনার কমপক্ষে 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 version 1.9.5.msysgit.1। তাহলে আমাকে কি নতুন সংস্করণে আপগ্রেড করতে হবে?
শিব

হাই বেন, আমি পুরানো সংস্করণে ছিলাম। আমি সর্বশেষে আপগ্রেড করেছি এবং এটি কাজ করে। সুতরাং আমি আপনার উত্তরটিকে আরও স্পষ্ট করে তুলতে সম্পাদনা করেছি (আপনার মন্তব্যটিকে শীর্ষে সরিয়ে নিয়েছে) এবং আপনাকে + 1-এডও করেছেন! ধন্যবাদ !!
শিব

এটি একটি ট্রিট কাজ করে! কোনও সিএসভি রফতানি করার জন্য একটি সরল বাশ স্ক্রিপ্ট ব্যবহার করে এখন আমি বছর, মাস, সপ্তাহ ইত্যাদির জন্য কলাম পেতে পারি it
জেমি টেলর

1
@ এডরানডাল: আপনি যদি উল্লেখ করছেন %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) মুদ্রণ করবে, যা আমার টার্মিনালে ওয়াইওয়াইওয়াই-এমএম-ডিডি অংশের পরে কার্যকরভাবে সমস্ত কিছু সরিয়ে ফেলবে। উদাহরণ স্বরূপ:

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
এটি আমার পক্ষে খুব ভাল কাজ করে। % X08 এর মধ্যে 6 ব্যবহার করা আমার জন্য ঠিক পিছনের টাইমজোনটিকে সরিয়ে দেয়।
পেঙ্গে গেঞ্জ

7
কি সম্পর্কে--date=short shows only date but not time, in YYYY-MM-DD format.
পাস্কে

3
জেডএস এবং ব্যাশে এটি আপনাকে টার্মিনালে আউটপুট দেখায় তবে আপনি যদি এটি কোনওরকম পাইপ করেন তবে "ব্যাকস্পিড" ডেটা এখনও আছে। এর অর্থ | sort | uniqকাজ করে না এমন জিনিস ।
chmac

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
নট 101

2
এখন এই উত্তর stackoverflow.com/a/34778736/907576 অধিক উপযুক্ত (গীত 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
এটি আমার পক্ষে কাজ করে না। আমি "অজানা তারিখের ফর্ম্যাট" পেয়েছি
রে

তোমার কাছে গিটের কোন সংস্করণ আছে?
লক্ষ_দেব


git log --pretty=format:"%h%x09%cd%x09%s" --date=format:'%Y-%m-%d %H:%M:%S %p'
অপেশাদার বারিস্তা

@amateurbarista যা শেষ প্রতিশ্রুতি প্রদর্শন করে না, অনুরোধটি পড়ুন। আর 3 সর্বশেষ প্রতিশ্রুতি প্রদর্শন করার চেষ্টা করছে, শেষ কয়েকটি প্রতিশ্রুতি নয়।
লক্ষ_দেব

16

" date=iso" ফর্ম্যাটটি সম্পর্কে সচেতন হন : এটি ঠিক আইএসও 8601 নয় । গিট ২.২.০ (নভেম্বর ২০১৪) এর জন্য বিট বলি ( ) এর
" 466fb67 " প্রতিশ্রুতি দেখুনbbolli

সুন্দর: একটি কঠোর আইএসও 8601 তারিখের ফর্ম্যাট সরবরাহ করুন

গিটের "আইএসও" তারিখের ফর্ম্যাটটি ছোট পার্থক্যের কারণে আইএসও 8601 স্ট্যান্ডার্ডের সাথে সামঞ্জস্যপূর্ণ নয় এবং এটি আইএসও 8601-শুধুমাত্র পার্সার, যেমন এক্সএমএল সরঞ্জামচেনগুলির দ্বারা পার্স করা যায় না।

" --date=iso" থেকে আউটপুট এই পদ্ধতিতে আইএসও 8601 থেকে বিচ্যুত হয়:

  • Tতারিখ / সময় সীমানার পরিবর্তে একটি স্থান a
  • সময় এবং সময় অঞ্চলের মধ্যে একটি স্থান
  • সময় অঞ্চলের ঘন্টা এবং মিনিটের মধ্যে কোনও কোলন নেই

প্রতিশ্রুতিবদ্ধ এবং লেখকের তারিখগুলি প্রদর্শনের জন্য একটি কঠোর আইএসও 8601 তারিখের ফর্ম্যাট যুক্ত করুন।
' %aI' এবং ' %cI' ফর্ম্যাট স্পেসিফায়ার ব্যবহার করুন এবং ' --date=iso-strict' বা ' --date=iso8601-strict' তারিখের বিন্যাসের নাম যুক্ত করুন।

আলোচনার জন্য এই থ্রেডটি দেখুন ।


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

মনে রাখবেন যে আপনার ব্যবহারের ক্ষেত্রে এটির ক্ষেত্রে গুরুত্বপূর্ণ এটি আপনার স্থানীয় সময় অঞ্চলকে রূপান্তর করবে।


ধন্যবাদ। আমি এটি% সিটি
ক্যাগনি

5

গিট 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রেফারেন্স

আপনি এখন স্থানীয় সময় অঞ্চল ব্যবহার করে যে কোনও তারিখের ফর্ম্যাট চাইতে পারেন । দেখা

কমিট কমড দেখুন , জেফ কিং ( ) এর 547ed71 (03 সেপ্টেম্বর 2015 ) প্রতিশ্রুতিবদ্ধ করুন(দ্বারা একীভূত junio সি Hamano - - মধ্যে কমিট 7b09c45 , 05 অক্টোবর 2015)peff
gitster

বিশেষত, উপরের থেকে শেষগুলি (কমডেডবা প্রতিশ্রুতিবদ্ধ) উল্লেখ করেছে:

date: " local" তারিখের বিন্যাসে অরথোগোনাল করুন:

আমাদের বেশিরভাগ --dateমোডগুলি তারিখের ফর্ম্যাট সম্পর্কে: আমরা কোন আইটেম প্রদর্শন করি এবং কোন ক্রমে।
তবে " --date=local" হ'ল কিছুটা বে odমান। এর অর্থ "সাধারণ বিন্যাসে তারিখটি দেখান, তবে স্থানীয় সময় অঞ্চল ব্যবহার করে"।
আমরা যে টাইমজোনটি ব্যবহার করি তা আসল বিন্যাসের জন্য অরথগোনাল এবং আমাদের "স্থানীয়করণকৃত iso8601" ইত্যাদি করতে না পারার কোনও কারণ নেই is

এই প্যাচটি " 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

আমার একটি বিশেষ ফর্ম্যাটে তারিখটি দরকার।

গিট 2.21 (Q1 2019) এর সাথে, একটি নতুন তারিখের ফর্ম্যাট " --date=human" বর্তমান সময়ের থেকে সময় কতটা দূরে রয়েছে তার উপর নির্ভর করে এর আউটপুটটিকে আকার দেয় ।

" --date=auto" আউটপুট পেজারে বা টার্মিনালে এবং অন্যথায় ডিফল্ট ফর্ম্যাটটিতে যাওয়ার পরে এই নতুন ফর্ম্যাটটি ব্যবহার করতে ব্যবহৃত হতে পারে।

প্রতিশ্রুতিবদ্ধ 110a6a1 দেখুন , b841d4f (29 জানুয়ারী 2019) প্রতিশ্রুতিবদ্ধ করুন এবং প্রতিশ্রুতিবদ্ধ 038a878 , 2fd7c22 (21 জানুয়ারী 2019) স্টিফেন পি স্মিথ (``) দ্বারা প্রতিশ্রুতিবদ্ধ করুন
দেখুন acdd377 কমিট (18 জানুয়ারী 2019) দ্বারা লিনাস টোরভাল্ডস ( torvalds)
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট ecbe1be , 07 ফেব্রুয়ারী 2019)

'মানবিক' তারিখ বিন্যাসের ডকুমেন্টেশন যুক্ত করুন

লোকেরা কীভাবে অন্যান্য প্রসঙ্গে তারিখ লেখেন তার অনুরূপ একটি ফর্ম্যাটে তারিখ এবং সময় সম্পর্কিত তথ্য প্রদর্শন করুন।
যদি বছরটি নির্দিষ্ট না করা হয়, তবে পাঠক অনুমান করে যে তারিখটি দেওয়া হয়েছে তা বর্তমান বছরে

অপ্রয়োজনীয় তথ্য প্রদর্শন না করে পাঠক আলাদা আলাদা তথ্যের প্রতি মনোনিবেশ করেন
প্যাচটি gitকমান্ড কার্যকর হওয়ার সময় কমান্ড চালানোর সময় মেশিনের চালনার তারিখ থেকে অনুমান করা তথ্যের ভিত্তিতে আপেক্ষিক তারিখের প্রতিবেদন করে ।

অনুমানযুক্ত তথ্য ফেলে দিয়ে ফর্ম্যাটটি মানুষের পক্ষে আরও কার্যকর, এমন কিছু নেই যা এটিকে আসলে মানুষ করে তোলে makes
যদি ' relative' তারিখের ফর্ম্যাটটি ইতিমধ্যে বাস্তবায়ন না করা হত, তবে ' relative' ব্যবহার করা উপযুক্ত হত have

যোগ 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যদি আমরা পেজার ব্যবহার করি using
সুতরাং আপনি এটি করতে পারেন:

git config --add log.date auto:human

এবং আপনার git logআদেশগুলি হ'ল মানব-স্পষ্ট ফর্ম্যাটটি প্রদর্শন করবে যতক্ষণ না আপনি কিছু স্ক্রিপ্ট করছেন।


গিট 2.24 (Q4 2019) কোডটি সহজ করেছে।

প্রতিশ্রুতিবদ্ধ 47b27c9 দেখুন , প্রতিশ্রুতিবদ্ধ 29f4332 (12 সেপ্টেম্বর 2019) স্টিফেন পি। স্মিথ (``) দ্বারা
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট 36d2fca , 07 অক্টোবর 2019)

তারিখের কোডে 'এখন' পাস করা ছেড়ে দিন

কমিট b841d4f ( humanটেস্ট- টুলটিতে ফর্ম্যাট যুক্ত করুন , 2019-01-28, গিট ভি 2.21.0-আরসি0) একটি 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]"

বিশদ যত্ন? এছাড়াও, আপনার উত্তরের ইতিমধ্যে একটি লেখকের ক্ষেত্র এবং ইতিহাস রয়েছে। এটি স্বাক্ষর করার প্রয়োজন নেই।
কিসাকি

2

আইএসও -র মতো ফর্ম্যাট থেকে আপনি চানটিকে রূপান্তর করতে বাশ এবং তারিখ কমান্ডটি ব্যবহার করুন। আমি একটি org- মোড তারিখ বিন্যাস (এবং তালিকা আইটেম) চেয়েছিলাম , তাই আমি এটি করেছি:

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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.