গিট লগ - কীভাবে গণনা করা যায়?


85

আমার বেশ কয়েকটি কমিটের সাথে একটি সাধারণ পরীক্ষার সংগ্রহশালা রয়েছে এবং তারিখ এবং সময় ফিল্টার হওয়া লগটি দেখতে চাই:

it গিট লগ --author = "অটোমেটিক্স" - সিন্ড = "2013-01-30" - ব্যাখ্যা - পরীক্ষা
প্রতিশ্রুতিবদ্ধ ea0719bef142659fa561c9d040b2120012ed0184
তারিখ: বৃহস্পতিবার 31 জানুয়ারী 02:03:12 2013 +0100

প্রতিশ্রুতিবদ্ধ ab4a8387bc4d9bdb4f67212df77eb1fc3d8b6304
তারিখ: থু জানুয়ারী 01:59:11 2013 +0100

প্রতিশ্রুতিবদ্ধ a0b027beba2cd03571bb9475b9db9542f8efe990
তারিখ: থু জানুয়ারী 01:50:38 2013 +0100

অঙ্গীকার যুক্ত 77c8fe2ba9254c11b98e14facede3420dc51c
তারিখ: থু জানুয়ারী 01:48:34 2013 +0100

প্রতিশ্রুতি e6e323c05d37c74fcabeb9186b95c0d49b862e6f
তারিখ: থু জানুয়ারী 01:46:27 2013 +0100

কমিট 8c286391e54d3fc1e210950b1320fd6f013a8f84
তারিখ: বৃহস্পতিবার 31 জানুয়ারী 01:41:27 2013 +0100

প্রতিশ্রুতিবদ্ধ 9c880595e57f717383796fa2940f41f0f42f7e2a
তারিখ: বৃহস্পতিবার 31 জানুয়ারী 01:38:17 2013 +0100

প্রতিশ্রুতিবদ্ধ a95527f36a533e1ecba1aadceea31a9dcbe1a8db
তারিখ: থু জানুয়ারী 01 01:30:00 2013 +0100

প্রথম নির্বাচিত প্রতিশ্রুতি a95527f36a533e1ecba1aadceea31a9dcbe1a8dbথেকে 2013-01-30 01:30:00। 8 টি কমিট নির্বাচন করা হয়েছে:

it গিট লগ --author = "অটোমেটিক্স" - সিন্ড = "2013-01-30" - ফর্ম্যাট = অনলাইন - পরীক্ষা | ডাব্লুসি
      8 34 498

ঠিক আছে. এখন থেকে আমি নির্বাচন করি 2013-01-31:

it গিট লগ --author = "অটোমেটিক্স" - সিন্ড = "2013-01-31" - ফর্ম্যাট = অনলাইন - পরীক্ষা | ডাব্লুসি
      0 0 0

কি? ঠিক আছে, এর অর্থ হওয়া উচিত, যে sinceনিয়মটি সূচনার তারিখের কাজগুলি বাদ দেয় । ঠিক?

তবে চলুন:

it গিট লগ --author = "অটোমেটিক্স" - সিন্ড = "2013-01-31 01:30:00" - ব্যাখ্যা - পরীক্ষা
প্রতিশ্রুতিবদ্ধ ea0719bef142659fa561c9d040b2120012ed0184
তারিখ: বৃহস্পতিবার 31 জানুয়ারী 02:03:12 2013 +0100

প্রতিশ্রুতিবদ্ধ ab4a8387bc4d9bdb4f67212df77eb1fc3d8b6304
তারিখ: থু জানুয়ারী 01:59:11 2013 +0100

প্রতিশ্রুতিবদ্ধ a0b027beba2cd03571bb9475b9db9542f8efe990
তারিখ: থু জানুয়ারী 01:50:38 2013 +0100

অঙ্গীকার যুক্ত 77c8fe2ba9254c11b98e14facede3420dc51c
তারিখ: থু জানুয়ারী 01:48:34 2013 +0100

প্রতিশ্রুতি e6e323c05d37c74fcabeb9186b95c0d49b862e6f
তারিখ: থু জানুয়ারী 01:46:27 2013 +0100

কমিট 8c286391e54d3fc1e210950b1320fd6f013a8f84
তারিখ: বৃহস্পতিবার 31 জানুয়ারী 01:41:27 2013 +0100

প্রতিশ্রুতিবদ্ধ 9c880595e57f717383796fa2940f41f0f42f7e2a
তারিখ: বৃহস্পতিবার 31 জানুয়ারী 01:38:17 2013 +0100

প্রতিশ্রুতিবদ্ধ a95527f36a533e1ecba1aadceea31a9dcbe1a8db
তারিখ: থু জানুয়ারী 01 01:30:00 2013 +0100
it গিট লগ --author = "অটোমেটিক্স" - সিন্ড = "2013-01-31 01:30:00" - ফর্ম্যাট = অনলাইন - পরীক্ষা | ডাব্লুসি
      8 34 498

এখন, আমি যখন শুরুর সময়টিও লিখছি তখন শুরুর সময়ের কমিটগুলি অন্তর্ভুক্ত করা হবে

যুক্তি বুঝতে পারছি না। কেউ কি ব্যাখ্যা করতে পারেন, কেন এটি এত অদ্ভুত কাজ করে?

ধন্যবাদ


4
সত্যিই খুব আকর্ষণীয় .. এটি আমার কাছে বোধগম্য হয় যদি আপনি সময় ছাড়াই কেবল একটি তারিখ সরবরাহ করেন, এটি দিনের শেষের দ্বিতীয় দিকে ডিফল্ট হয় .. তবে এটি কেবল এমন কিছু যা আমি ছুরিকাঘাত করছি। এই পোস্ট করার জন্য ধন্যবাদ। খুব আকর্ষণীয়!
ইলান বারসি

4
হ্যাঁ, তাই মনে হচ্ছে, এটি একটি সময় ছাড়াই দিনের শেষের দ্বিতীয় দিকে ডিফল্ট হয়। স্ট্যাঞ্জ, তবে কোনও সমস্যা নেই। তবে তখন গিটের ফলস্বরূপ একই কাজ করা উচিত, যখন সেকেন্ড ছাড়া সময় সরবরাহ করা হয়। সুতরাং ফলাফল git log --author="automatix" --since="2013-01-31 01:30" --pretty -- test 7 বিষয়বস্তু করা উচিত। তবে এটি বিষয়বস্তু 8. git log --author="automatix" --since="2013-01-31 01:30" --format=oneline -- test | wc=> 8 34 498
অটোমেটিক্স

আমি একমত নই যখন আমি বলি "সোমবারের পরে ..." তখন আমার অর্থ "সোমবারের শেষ দ্বিতীয় পরে ঘটেছিল" - "সোমবার" মানে 24 ঘন্টা সময়কাল। যখন আমি বলি "9 টা বাজে পরে", তখন আমার অর্থ "9: 00: 00.0000 এর পরে ঘটেছে" - "9 টা বাজেট" সময়ের এক পয়েন্ট, সময়কাল নয়। গিটের ব্যাখ্যাটি সবচেয়ে সার্থক করে তোলে।
ক্রোনিয়াল

4
এটি একটি ভাল পয়েন্ট। আমি বলব, এই যুক্তিটি কেবল "পরে" দিয়ে কাজ করে - "পরে" দিয়ে নয়। তবে গিটে "যেহেতু" anf "পরে" কীওয়ার্ডগুলি সমার্থক শব্দ (এটি আমি ভাষাতাত্ত্বিকভাবে মলিন মনে করি)। git-scm.com/book/en/…
অটোমেটিক্স

উত্তর:


139

যদি এটি এখানে অন্য যে কেউ আমার মতো করে সেখানেও সহায়তা করে , কিছুটা গবেষণা করার পরে আমি জানতে পেরেছি যে আইএসও 8601 ফর্ম্যাটটি ব্যবহার করেও কাজ করে:

git log --since="2014-02-12T16:36:00-07:00"

এটি আপনাকে দ্বিতীয়টিতে যথার্থতা দেবে। দ্রষ্টব্য: আপনি এটি ব্যবহার করতে পারেন:

git log --after="2014-02-12T16:36:00-07:00"
git log --before="2014-02-12T16:36:00-07:00"
git log --since="1 month ago"
git log --since="2 weeks 3 days 2 hours 30 minutes 59 seconds ago"

ইত্যাদি

অবশ্যই, এটি "কেন এটি এত অদ্ভুত কাজ করে তা ব্যাখ্যা করে না"। তবে এটি অবশ্যই আমার জন্য সমস্যার সমাধান করেছে।


সম্পাদনা:

আরও কিছু গবেষণার পরে, আমি "কেন এটি এত অদ্ভুতভাবে কাজ করে" জানতে পেরেছি:
এটি প্রমাণিত হয়েছে যে আপনি যখন কোনও তারিখের ফর্ম্যাট নির্দিষ্ট না করেন, লেখকের টাইমজোন বা কমিট তারিখগুলির সাথে গিট লগ ডিফল্ট হয় , ধারাবাহিক আচরণের জন্য অর্থ, এটি কার্যকর স্পষ্টভাবে এই জাতীয় কিছু সহ আপনার তারিখের ফর্ম্যাটটি ঘোষণা করতে:

git log --date=local

শেষ অবধি, আপনি যখন কোনও সময় নির্দিষ্ট করবেন না, আপনি যখন কমান্ডটি চালাচ্ছিলেন তখন এটি আপনার স্থানীয় সময়কে ডিফল্ট করে দেয়।

দীর্ঘ গল্প সংক্ষিপ্ত, নির্দিষ্ট হওয়া সমস্যার সমাধান করা উচিত:

git log --date=local --after="2014-02-12T16:36:00-07:00"

এছাড়াও, আপনি নিম্নলিখিত কমান্ড দিয়ে স্থায়ীভাবে ডিফল্ট তারিখ বিন্যাস সেট করতে পারেন:

git config log.date local

আপনি এই মানগুলির যে কোনও একটি ব্যবহার করতে পারেন: (relative|local|default|iso|rfc|short|raw)

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