سه ناحیه در گیت
یکی از مفاهیم کلیدی گیت که در ابتدا کمی گیجکننده است، وجود سه ناحیهی جداگانه است: Working Directory (فایلهای واقعی روی دیسک)، Staging Area (ناحیهی آمادهسازی) و Repository (تاریخچهی ثبتشده). وقتی فایلی را ویرایش میکنید، تغییر فقط در working directory اتفاق افتاده و گیت هنوز آن را ثبت نکرده است.
برای اینکه تغییری وارد staging area شود، از دستور git add استفاده میکنیم:
git add app.py
git add templates/index.html
git add .
فرمان آخر یعنی «همهی تغییرات در پوشهی فعلی و زیرپوشهها را اضافه کن». این جدا کردن مرحلهی add از commit یک مزیت بزرگ دارد: شما میتوانید فقط بخشی از تغییرات را برای یک commit انتخاب کنید. مثلاً اگر همزمان روی دو ویژگی متفاوت کار کردهاید، میتوانید فایلهای مربوط به هر ویژگی را جداگانه add و commit کنید تا تاریخچهی تمیزتری داشته باشید.
بررسی قبل از commit
برای دیدن دقیق چه خطوطی تغییر کرده و هنوز به staging اضافه نشدهاند:
git diff
و برای دیدن تغییراتی که در staging area قرار گرفتهاند:
git diff --staged
عادت به بررسی این خروجیها پیش از commit کردن، از ثبت اشتباهی فایلهای ناخواسته یا کدهای نیمهکاره جلوگیری میکند و یکی از نشانههای کار حرفهای با گیت است.