انتقال تغییرات مورد نظر برای کامیت (Commit) بعدی، از دایرکتوری کاری (Working Directory) به منطقه موقت (Staging Area)، با دستور
git add ، در Git
دستور git add یکی از پرکاربردترین دستورات در گیت (Git) است و نقش بسیار کلیدی در فرآیند ذخیره سازی تغییرات دارد.
برای درک بهتر، بیایید فرآیند ذخیره سازی در گیت را به ۳ مرحله اصلی تقسیم کنیم:
1- Working Directory (دایرکتوری کاری): جایی که شما فایل ها را ویرایش می کنید.
2- Staging Area (منطقه موقت یا ایندکس): یک فضای میانی که تغییرات مورد نظر برای کامیت بعدی را در آن جمع آوری می کنید.
3- Repository (مخزن یا دایرکتوری
.git ): جایی که تغییرات به صورت دائمی (به عنوان یک snapshot) ذخیره می شوند.
نقش دقیق git add چیست؟
دستور git add، تغییرات شما را از دایرکتوری کاری به منطقه موقت (Staging Area) منتقل می کند.
به عبارت ساده تر، شما با این دستور به گیت می گویید: "این تغییرات خاص را برای ثبت در کامیت بعدی انتخاب کن."
چرا به git add نیاز داریم؟
این دستور به شما قدرت انتخاب گزینشی می دهد. فرض کنید روی چندین ویژگی مختلف در یک پروژه کار می کنید (مثلا باگ A را رفع کرده اید و ویژگی B را اضافه کرده اید). با استفاده از git add می توانید:
فقط فایل های مربوط به رفع باگ A را به مرحله بعد بفرستید و کامیت کنید.
فایل های مربوط به ویژگی B را برای کامیت بعدی نگه دارید.
این کار از کامیت کردن تغییرات ناقص یا چندین تغییر بی ربط با هم جلوگیری می کند و تاریخچه پروژه را تمیز و قابل درک نگه می دارد.
مثال های رایج از دستور git add
git add filename.txt : فقط فایل مشخص شده را به منطقه موقت اضافه می کند.
git add . : همه فایل های جدید، تغییرکرده و حذف شده در پوشه جاری و زیرپوشه ها را به منطقه موقت اضافه می کند (متداول ترین دستور).
git add -A یا
git add --all : مشابه دستور بالا، اما همه تغییرات در کل پروژه (حتی خارج از پوشه جاری) را اضافه می کند.
git add -p
یا
git add --patch
: این دستور بسیار پیشرفته است و به شما اجازه می دهد بخشی از یک فایل (نه کل فایل) را به منطقه موقت اضافه کنید. برای کامیت های بسیار دقیق عالی است.
جمع بندی نهایی (چرخه کاری)
چرخه کاری استاندارد در گیت به این صورت است:
1- فایل ها را ویرایش می کنید (Working Directory).
2- با دستور
git add آن ها را برای کامیت آماده می کنید (Staging Area).
3- با دستور
git commit -m "پیام" تغییرات را به صورت دائمی در مخزن ذخیره می کنید (Repository).
اگر دستور git add را فراموش کنید و مستقیما git commit بزنید، گیت به شما خطا می دهد که "هیچ تغییری برای کامیت وجود ندارد" زیرا منطقه موقت خالی است.