Gitبرنامه نویسی Programming

Commitها و Diff در Git؛ بررسی تغییرات بین نسخه‌ها

Chapter 6: Commits and Diff

Commit در Git مانند گرفتن یک عکس فوری (Snapshot) از کل پروژه است. هر بار که شما Commit می‌کنید، تغییرات ذخیره می‌شوند و تاریخچه‌ی پروژه ساخته می‌شود. اما فقط ذخیره کردن کافی نیست؛ ما باید بتوانیم ببینیم چه چیزی تغییر کرده است. اینجا جایی است که مفهوم Diff وارد می‌شود.

در این فصل یاد می‌گیریم:

  • Commit چیست و چه ساختاری دارد.
  • چگونه می‌توانیم تغییرات بین Commitها را مشاهده کنیم.
  • دستورات کاربردی برای مدیریت Commitها و Diff.

Commit در Git چیست؟

هر Commit یک شیء (Object) در Git است که شامل اطلاعات زیر است:

  • یک Snapshot از پروژه (با اشاره به یک Tree).
  • پیام Commit که توضیح تغییرات است.
  • نویسنده (Author) و زمان ایجاد.
  • اشاره به Commit والد (Parent Commit).

به همین دلیل Commitها یک زنجیره‌ی پیوسته را تشکیل می‌دهند که تاریخچه پروژه را می‌سازد.

 

commit main

ایجاد Commit جدید

بعد از تغییر فایل‌ها و افزودن آن‌ها به Staging Area (git add):

git commit -m "Add about page"

حالا یک Snapshot جدید در تاریخچه ایجاد شده است.

git commit verbose mode output

مشاهده Commitها

برای دیدن تاریخچه Commitها:

git log

خروجی شامل Hash Commit، نام نویسنده، تاریخ و پیام Commit است.

برای مشاهده‌ی کوتاه‌تر:

git log --oneline

مثال:

a1b2c3d Add about page
e9f8g7h First commit: add index.html

Diff در Git چیست؟

Diff به معنای «تفاوت» است. Git با استفاده از Diff نشان می‌دهد چه تغییراتی بین فایل‌ها، Commitها یا شاخه‌ها ایجاد شده است.

دستورات کاربردی Diff

1. مشاهده تغییرات در Working Directory

قبل از Stage کردن:

git diff

این دستور تغییرات بین فایل‌های ویرایش‌شده و آخرین Snapshot (HEAD) را نشان می‌دهد.

2. مشاهده تغییرات Staging Area

بعد از git add، برای دیدن تغییراتی که آماده Commit شدن هستند:

git diff --staged

3. مشاهده تغییرات بین دو Commit

git diff commit1 commit2

مثال:

git diff a1b2c3d e9f8g7h

4. مشاهده تغییرات آخرین Commit

git show

یا به‌طور دقیق‌تر:

git show HEAD

خواندن خروجی Diff

خروجی Diff معمولاً به این شکل است:

  • خطوطی که با - شروع می‌شوند → حذف شده‌اند.
  • خطوطی که با + شروع می‌شوند → اضافه شده‌اند.

مثال:

- <h1>Hello Git</h1>
+ <h1>Hello Git World</h1>

چرا Diff مهم است؟

  • به شما امکان می‌دهد قبل از Commit کردن مطمئن شوید تغییرات درست هستند.
  • کمک می‌کند تفاوت‌ها بین نسخه‌های مختلف پروژه را سریع پیدا کنید.
  • برای بررسی کد (Code Review) و رفع باگ‌ها حیاتی است.

جمع‌بندی

  • Commit واحد اصلی ذخیره تغییرات در Git است.
  • Diff ابزاری برای مقایسه تغییرات بین Commitها، شاخه‌ها یا فایل‌هاست.
  • با استفاده از دستورات git diff، git show و git log می‌توانید تغییرات پروژه را ردیابی کنید.

در فصل بعد (Chapter 7: Press the Undo Button) یاد می‌گیریم که اگر اشتباهی کردیم، چطور می‌توانیم تغییرات یا Commitها را به عقب برگردانیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا