مرحلهبندی فایلها و ایجاد اولین Commit در Git
Chapter 4: Staging Files and Creating First Commit

در Git، همهچیز حول محور Commit میچرخد. Commitها مثل عکسهایی (Snapshot) هستند که در لحظهای خاص از پروژه گرفته میشوند. اما قبل از اینکه بتوانید Commit ایجاد کنید، باید تغییرات خود را در مرحلهای به نام Staging Area آماده کنید. اگر تازهکار هستید، نگران نباشید؛ “تعهد” در Git ترسناک نیست بلکه یکی از مهمترین ویژگیهای آن است.
چرخه تغییرات در Git
برای درک بهتر Commit، ابتدا چرخه کلی تغییرات را مرور کنیم:
- Working Directory → جایی که تغییرات روی فایلها اعمال میشوند.
- Staging Area (Index) → جایی که تغییرات انتخاب شده و آماده Commit میشوند.
- Repository → جایی که Commitها ذخیره میشوند و تاریخچه پروژه ساخته میشود.

ایجاد یک پروژه جدید در Git
اولین قدم ساختن یک مخزن (Repository) است:
mkdir my-project
cd my-project
git init
با اجرای git init
یک پوشه مخفی به نام .git
ایجاد میشود که شامل تمام اطلاعات تاریخچه پروژه است.

مرحلهبندی فایلها (Staging Files)
فرض کنید یک فایل جدید به نام index.html
میسازید.
echo "<h1>Hello Git</h1>" > index.html
اگر دستور زیر را اجرا کنید:
git status
خواهید دید که فایل به عنوان Untracked (ردیابی نشده) نمایش داده میشود.
برای افزودن فایل به Staging Area:
git add index.html
اگر همه فایلها را میخواهید اضافه کنید:
git add .
ایجاد اولین Commit
حالا وقت آن رسیده که اولین Snapshot پروژه را ثبت کنیم:
git commit -m "First commit: add index.html"
- گزینه
-m
برای نوشتن پیام Commit است. - پیام Commit باید خلاصه و توصیفی باشد.
پیام Commit خوب چه ویژگیهایی دارد؟
- کوتاه و واضح باشد.
- بیان کند چه کاری انجام دادهاید.
- مثالهای خوب:
Add login page
Fix bug in payment process
Update README with installation steps
بررسی تاریخچه Commitها
برای مشاهده Commitها:
git log
خروجی چیزی شبیه این خواهد بود:
commit e68ff47f2a0c8b04d3a1f9eaa8f2a1dbe5a1d213
Author: Your Name <your.email@example.com>
Date: Fri Sep 29 10:15:00 2023
First commit: add index.html
بهروزرسانی Staging Area
اگر بعداً فایل index.html
را ویرایش کنید:
- تغییرات جدید به صورت Modified شناخته میشوند.
- باید دوباره آن را با
git add
به Staging Area منتقل کنید. - سپس با
git commit
یک Snapshot جدید ایجاد کنید.
چرا Staging Area مهم است؟
ممکن است در یک پروژه روی چندین فایل کار کنید، اما نخواهید همه تغییرات را در یک Commit ذخیره کنید. Staging Area به شما امکان میدهد:
- فقط تغییرات مورد نظر را انتخاب کنید.
- Commitهای تمیزتر و قابل درکتر بسازید.
- مدیریت بهتری روی تاریخچه پروژه داشته باشید.
در این فصل یاد گرفتیم که:
- چطور یک مخزن Git بسازیم (
git init
). - فایلها را به Staging Area منتقل کنیم (
git add
). - اولین Commit خود را ایجاد کنیم (
git commit
). - اهمیت پیام Commit و Staging Area را درک کردیم.
در فصل بعد (Chapter 5: Recreating Git’s Init Process) پشت صحنهی دستور git init
را بررسی میکنیم و خواهیم دید که Git دقیقاً چه فایلهایی میسازد.