کامیت در Git — git commit
ثبت تغییرات در تاریخچه با git commit، نوشتن پیامهای خوب و بهترین شیوههای کامیت.
کامیت چیست؟
کامیت (Commit) یعنی ثبت دائمی تغییرات Stage شده در تاریخچه مخزن. هر کامیت مثل یک عکس فوری (Snapshot) از کل پروژه در یک لحظه خاص است — همراه با نام نویسنده، تاریخ و پیام توضیحی.
اولین کامیت
فرض کنید فایل hello.txt را با git add به ناحیه staging بردهاید. حالا:
git commit -m "اولین کامیت من"
خروجی:
[main (root-commit) a1b2c3d] اولین کامیت من
1 file changed, 1 insertion(+)
create mode 100644 hello.txt
تفسیر خروجی
| بخش | معنی |
|---|---|
main (root-commit) | روی شاخه main — اولین کامیت مخزن (root) |
a1b2c3d | شناسه (هش) کوتاه کامیت — منحصربهفرد است |
1 file changed, 1 insertion(+) | خلاصه تغییرات: یک فایل تغییر کرد، یک خط اضافه شد |
سوئیچ -m و پیام کامیت
سوئیچ -m (message) پیام کامیت را همانجا مینویسید. اگر آن را ننویسید، گیت ویرایشگر پیشفرض را باز میکند تا پیام را بنویسید.
قوانین پیام خوب
- کوتاه و گویا: حداکثر ۵۰ کاراکتر برای خط اول
- با فعل تمام شود: «افزودن قابلیت جستجو» نه «قابلیت جستجو»
- توضیح «چرا» نه «چه»: کد نشان میدهد چه شده؛ پیام باید بگوید چرا
- انگلیسی یا فارسی؟ در پروژههای تیمی معمولاً انگلیسی مینویسند، اما برای پروژه شخصی هر زبانی اوکی است
مثال پیامهای خوب و بد
| ❌ پیام بد | ✅ پیام خوب |
|---|---|
| تغییرات | افزودن صفحه ورود کاربر |
| fix | رفع خطای اعتبارسنجی ایمیل |
| update | بهروزرسانی وابستگیها به نسخههای امن |
| کار تمام شد | اتصال درگاه پرداخت به صفحه سفارش |
کامیت بدون Stage (میانبر)
اگر فایل قبلاً حداقل یک بار کامیت شده (tracked است)، میتوانید stage و commit را یکجا انجام دهید:
git commit -a -m "ویرایش سریع فایل readme"
سوئیچ
-a فقط فایلهای tracked را شامل میشود — فایلهای جدید (untracked) حتماً باید با git add اضافه شوند.دیدن جزئیات یک کامیت
git show a1b2c3d
این دستور جزئیات کامل کامیت را نشان میدهد: نویسنده، تاریخ، پیام و تغییرات خطبهخط.
هر کامیت چه اطلاعاتی دارد؟
- شناسه (SHA-1): هش ۴۰ کاراکتری منحصربهفرد مثل
a1b2c3d4e5... - نویسنده: نام و ایمیل (از git config)
- تاریخ و ساعت: زمان دقیق ثبت کامیت
- پیام: توضیح تغییرات
- والد: شناسه کامیت قبلی — کامیتها زنجیرهای به هم وصلاند
- Snapshot: وضعیت کامل همه فایلها در آن لحظه
چند وقت یکبار کامیت کنیم؟
قانون طلایی: هر تغییر منطقی و کامل = یک کامیت
- رفع یک باگ؟ یک کامیت ✅
- افزودن یک قابلیت؟ یک کامیت ✅
- تغییر فونت سایت؟ یک کامیت ✅
- نصفهکاره کار؟ بهتر است صبر کنید تا کامل شود ❌
کامیتهای کوچک و مکرر بهتر از کامیتهای غولپیکر و نادرند. اگر اشتباه کنید، برگشتن از یک کامیت کوچک خیلی راحتتر است!
خلاصه
git commit -m "پیام"تغییرات stage شده را ثبت میکند- هر کامیت یک snapshot کامل + نام + زمان + پیام دارد
- پیامهای کوتاه و گویا بنویسید
git commit -a -mمیانبر برای فایلهای tracked است
این مبحث بخشی از دوره آموزش کامل Git است.