سیاوش ستاری
سیاوش ستاری
خواندن ۳ دقیقه·۳ سال پیش

دستور git log و مشتقات آن


سلام عزیزان ، امیدوارم حالتون خوب باشه و سرشار از انرژی باشید . در این مقاله قصد داریم با دستور git log و بعضی از مشتقات پرکاربردش آشنا بشیم و ببینیم که چطور میتونیم commit های یک repository خاص رو اصطلاحا فیلتر کنیم!


خیلی اوقات پیش میاد که ما نیاز به دیدن کامیت‌ های گذشته داریم و میخوایم ببینیم که یک کامیت خاص حاوی چه تغییراتی هست! این تنها به این معنی نیست که میخوایم لیست همه ی کامیت‌ هایی که قبلا انجام شدن رو ببینیم ؛ بلکه میخوایم یطوری بین کامیت‌ های گذشته سرچ کنیم ! به عنوان مثال، میخوایم کامیت‌ هایی رو که یک شخصی خاص در یک تاریخ خاصی انجام داده رو بررسی کنیم. برای این منظور، از git log استفاده میکنیم. خوب بیایم با این دستور بیشتر آشنا بشیم :) دستور زیر رو در نظر بگیریم :



این دستور برای هر کامیتی که در branch فعلی انجام شده اطلاعاتی رو نمایش میده. این اطلاعات عبارتند از:

  • ‏‌Commit : مقدار هش کامیت رو نمایش میده. این مقدار در واقع شناسه یکتای کامیت هست.
  • ‏‌Author : اطلاعات مربوط به کسی که ایجاد کننده کامیت بوده رو نمایش میده.
  • ‏‌Date : تاریخ و زمانی که این کامیت انجام شده رو نمایش میده.
  • همچنین پیام مربوط به کامیت انجام شده هم دیده میشه.

حالا اگر بخوایم دستور git log رو روی برنچ خاصی ( مثلا برنچ profile ) اجرا کنیم، میتونیم بصورت زیر عمل کنیم :



همونطور که بالاتر هم بهش اشاره شد، ما معمولا نمیخوایم همه ی کامیت‌ ها رو ببینیم :) خوشبختانه git log موارد زیادی رو برای جستجو بین کامیت‌ های گذشته در اختیارمون قرار میده و معمولا روند یادگیری این موارد به اینصورته که وقتی در حین انجام پروژه ‌ای نیاز به پیدا کردن کامیت‌ های خاصی داریم، میتونیم با متوسل شدن به گوگل و یک سرچ ساده ، دستور مناسب رو پیدا کنیم و با چند بار تکرار، اونو فرا بگیریم. به همین دلیل، در اینجا فقط بعضی از مواردی که کاربرد بیشتری دارن رو با هم مرور میکنیم. پس با من همراه باشید :)


گزارش ۵ کامیت آخری که انجام شده :



گزارش کامیت ‌هایی که توسط شخصی به نام X انجام شده :



گزارش کامیت‌هایی که قبل از تاریخ 2022/01/10 انجام شدن :



حالا میخوام بهتون یه نکته ی کول بگم که خودم بشخصه خیلی باهاش حال میکنم :) نکته ی جالب اینه که git موارد زیر رو هم میفهمه بچه ها :



برای دیدن کامیت‌ های از یک تاریخ خاص به بعد هم میتونیم از فلگ after مشابه before استفاده کنیم. همچنین میتونیم این دستورات رو باهم ترکیب کنیم ! به عنوان مثال، دستور زیر گزارشی از ۵ کامیت آخری که بعد از تاریخ 2022/01/01 و تا قبل از دیروز توسط شخصی به نام X انجام شده رو نمایش میده :



راستی گاهی اوقات هم نیاز داریم کامیت ‌هایی رو پیدا کنیم که فایل خاصی ( مثلا app.js ) رو تغییر دادن! برای این منظور باید از دستور زیر استفاده کنیم (به فاصله‌ی بین -- و app.js دقت کنید رفقا) :



خوب حالا بیایم کمی حرفه ای تر عمل کنیم ؟ نظرتونه :) بچه ها دستور زیر کامیت‌ هایی رو نمایش میده که عبارت bug fix رو در جایی از ریپازیتوری اضافه کردن :



همچنین این دستور، کامیت ‌هایی رو نمایش میده که در پیام هاشون (که در زمان کامیت کردن با m- مشخص شدن) ، عبارت X وجود داشته باشه :



خوب تا اینجا صرفا دست گرمی بود :) حالا به عنوان تمرین فکر کنید و بگید که دستور زیر چه کامیت ‌هایی رو نمایش میده؟



پاسخ : دو کامیت آخری که توسط John Doe از ۱۰ ساعت پیش تا الان انجام شده و عبارت def رو در app.js اضافه کردن.




خوب دوستان به پایان این مقاله رسیدیم و امیدوارم که لذت کافی رو برده باشین و تونسته باشم بهتون کمکی کرده باشم . راستی اگر هر نوع سوال ، نظر یا انتقادی داشتین ، خوشحال میشم که در قسمت کامنت ها به اشتراک بزارین . مخلصیم :)

gitgit logآموزش git
Front-end Developer
شاید از این پست‌ها خوشتان بیاید