مقدمه
یکی از اصلیترین دلایل استفاده از یک سیستم کنترل نسخه، قابلیت بازبینی و مرور تاریخچه پروژه است.
شما باید بتوانید ببینید چه کسی، چه زمانی و چه تغییری را ایجاد کرده است. این قابلیت برای پیدا
کردن منشا باگها، درک روند توسعه پروژه و همکاری تیمی ضروری است.
در گیت، ابزار اصلی شما برای این کار، دستور قدرتمند git log است. این دستور به شما اجازه
میدهد تا تاریخچه کامیتها را به شکلهای مختلف مشاهده، فیلتر و جستجو کنید. در این درس، با این
دستور و آپشنهای پرکاربرد آن آشنا خواهیم شد.
مرور تاریخچه با دستور git log
اگر در یک ریپوزیتوری گیت، دستور git log را بدون هیچ آپشنی اجرا کنید، لیستی از کامیتهای
انجام شده در برنچ فعلی را به ترتیب از جدیدترین به قدیمیترین نمایش میدهد.
git log
خروجی این دستور برای هر کامیت شامل اطلاعات زیر است:
- هش کامیت (Commit Hash): یک شناسه ۴۰ کاراکتری منحصربهفرد (از نوع SHA-1) که به صورت
یکتا به آن کامیت اشاره دارد.
- نویسنده (Author): نام و ایمیل شخصی که کامیت را ایجاد کرده است (بر اساس تنظیمات
user.name و user.email).
- تاریخ (Date): تاریخ و زمان دقیق ثبت کامیت.
- پیام کامیت (Commit Message): پیامی که توسعهدهنده برای توصیف آن تغییر نوشته است.
آپشنهای پرکاربرد و مفید
خروجی پیشفرض git log کمی طولانی است. خوشبختانه آپشنهای زیادی برای سفارشیسازی آن وجود
دارد.
فیلتر کردن و جستجو در تاریخچه
در پروژههای بزرگ، تاریخچه کامیتها میتواند هزاران خط باشد. git log ابزارهای قدرتمندی
برای فیلتر کردن این لیست بلندبالا در اختیار شما قرار میدهد.
- فیلتر بر اساس تعداد: با استفاده از -<n> میتوانید فقط n کامیت آخر
را مشاهده کنید. برای مثال، git log -5 فقط ۵ کامیت اخیر را نمایش میدهد.
- فیلتر بر اساس زمان: با آپشنهای --since و --until (یا --after و
--before) میتوانید یک بازه زمانی مشخص را بررسی کنید.
git log --since="2 weeks ago"
git log --since=2024-01-01 --until=2024-03-31
- فیلتر بر اساس نویسنده: با آپشن --author میتوانید فقط کامیتهای یک شخص خاص را
ببینید.
git log --author="Ali Ahmadi"
- فیلتر بر اساس پیام کامیت: با --grep میتوانید در پیامهای کامیت به دنبال یک
کلمه یا عبارت خاص بگردید.
git log --grep="fix login bug"
- فیلتر بر اساس فایل: یکی از پرکاربردترین فیلترها، مشاهده تاریخچه تغییرات یک فایل یا
پوشه خاص است. برای این کار، پس از آپشنها، مسیر فایل را مشخص کنید.
git log --oneline -- index.html
مشاهده جزئیات یک کامیت خاص با git show
گاهی اوقات شما نمیخواهید کل تاریخچه را ببینید، بلکه فقط به دنبال بررسی جزئیات یک کامیت خاص
هستید. برای این کار از دستور git show استفاده میکنیم. کافیست هش کامیت مورد نظر را به
عنوان آرگومان به این دستور بدهید.
git show 1a2b3c4
(لازم نیست کل هش ۴۰ کاراکتری را وارد کنید، ۷-۸ کاراکتر اول کافی است). خروجی این دستور، اطلاعات
کامل آن کامیت به همراه جزئیات کامل تغییرات (patch) را نمایش میدهد. اگر هیچ هشی را مشخص
نکنید، git show جزئیات آخرین کامیت را نمایش میدهد.