فصل دوم: کار با تغییرات و تاریخچه

مشاهده‌ی تاریخچه با git log و git diff

مرور تاریخچه‌ی پروژه

دستور git log فهرست کامل commitها را به همراه شناسه، نویسنده، تاریخ و پیام نشان می‌دهد. چون خروجی کامل معمولاً طولانی است، از فرمت‌های خلاصه‌تر استفاده می‌کنیم:

git log --oneline
git log --oneline --graph --all
git log -p -2

گزینه‌ی --oneline هر commit را در یک خط نشان می‌دهد، --graph شاخه‌ها را به‌صورت نموداری رسم می‌کند و -p -2 تغییرات دقیق دو commit آخر را نمایش می‌دهد. این ابزارها برای فهمیدن اینکه «چه اتفاقی در پروژه افتاده» بسیار کاربردی‌اند، به‌خصوص وقتی به یک پروژه‌ی قدیمی برمی‌گردید.

مقایسه‌ی نسخه‌ها

برای مقایسه‌ی دو نقطه‌ی مشخص از تاریخچه از git diff همراه با شناسه‌ی commitها استفاده می‌کنیم:

git diff HEAD~2 HEAD
git diff a1b2c3d f4e5d6c

HEAD اشاره‌گری است که همیشه به commit فعلی که روی آن هستید اشاره می‌کند. HEAD~2 یعنی دو commit قبل از وضعیت فعلی. برای پیدا کردن اینکه کدام commit یک باگ خاص را وارد کرده، دستور بسیار قدرتمند git bisect نیز وجود دارد که با جستجوی دودویی بین commitهای خوب و بد، commit مقصر را پیدا می‌کند. یادگیری این ابزارها باعث می‌شود تاریخچه‌ی گیت به یک منبع اطلاعاتی زنده برای تیم تبدیل شود، نه فقط یک آرشیو خاموش.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.