تاریخچه در Git — git log و git diff
مشاهده تاریخچه کامیتها با git log، مقایسه نسخهها با git diff و پیدا کردن هر تغییری در پروژه.
تاریخچه — قدرت اصلی گیت
یکی از بزرگترین مزیتهای گیت این است که هیچ چیزی گم نمیشود. هر کامیت با جزئیات کامل ذخیره میشود و شما میتوانید هر لحظه از تاریخچه را ببینید یا مقایسه کنید.
دستور git log
پرکاربردترین دستور برای دیدن تاریخچه:
git log
خروجی نمونه:
commit a1b2c3d4e5f6... (HEAD -> main)
Author: علی محمدی <ali@example.com>
Date: Mon Jan 15 10:30:00 2026 +0330
افزودن صفحه ورود کاربر
commit f6e5d4c3b2a1...
Author: علی محمدی <ali@example.com>
Date: Sun Jan 14 18:45:00 2026 +0330
اولین کامیت: ساخت پروژه
کامیتها از جدید به قدیم نمایش داده میشوند. علامت HEAD -> main یعنی الان روی شاخه main و در آخرین کامیت هستید.
فرمتهای کاربردی git log
خلاصه یکخطی (رایجترین)
git log --oneline
# a1b2c3d (HEAD -> main) افزودن صفحه ورود کاربر
# f6e5d4c اولین کامیت: ساخت پروژه
نمایش گرافیکی شاخهها
git log --oneline --graph --all
با این دستور شاخهها و ادغامها بهصورت گرافیکی (خطوط و ستارهها) نمایش داده میشوند.
فقط n کامیت آخر
git log -3
تاریخچه یک فایل خاص
git log --oneline hello.txt
چه کسی چه فایلی را تغییر داده؟
git log --stat
نشان میدهد هر کامیت چند فایل را تغییر داده و هر فایل چند خط اضافه/کم شده.
جستجو در پیام کامیتها
git log --grep="باگ"
تاریخچه یک نویسنده خاص
git log --author="علی"
دستور git diff — مقایسه نسخهها
git diff تفاوتها را خطبهخط نشان میدهد:
تغییرات stage نشده
git diff
تفاوت بین working directory و staging area:
diff --git a/hello.txt b/hello.txt
- سلام دنیا
+ سلام دنیا از لرنینگ سیتی!
| نماد | معنی |
|---|---|
- (قرمز) | خط حذفشده یا تغییرکرده |
+ (سبز) | خط اضافهشده |
تغییرات stage شده
git diff --staged
مقایسه دو کامیت
git diff a1b2c3d f6e5d4c
مقایسه دو شاخه
git diff main feature-search
دستور git show — جزئیات یک کامیت
git show a1b2c3d
اطلاعات کامل کامیت + تغییرات آن را نشان میدهد.
git blame — خط آخر کی نوشته؟ 😄
git blame hello.txt
برای هر خط فایل نشان میدهد چه کسی، کِی و در کدام کامیت آن را نوشته — برای دیباگ و بازبینی کد فوقالعاده است!
a1b2c3d (علی محمدی 2026-01-15 10:30:00 +0330 1) سلام دنیا
f6e5d4c (علی محمدی 2026-01-14 18:45:00 +0330 2) خط دوم
خلاصه
git log --oneline --graphبهترین دوست شما برای دیدن تاریخچهgit diffتفاوتها را خطبهخط نشان میدهدgit showجزئیات یک کامیت را نمایش میدهدgit blameنویسنده هر خط را مشخص میکند
این مبحث بخشی از دوره آموزش کامل Git است.