اضافه کردن فایلها
پیشنمایش دستور
نمای کلی
دستور git add یکی از مهمترین بخشهای گردش کار Git است. این دستور تغییرات را از
working directory به staging area منتقل میکند و به شما اجازه میدهد
دقیقاً مشخص کنید چه چیز باید در commit بعدی ذخیره شود. این کار باعث ایجاد یک تاریخچه تمیز، قابل فهم و قابل نگهداری میشود.
git add دقیقاً چه میکند؟
- فایلهای جدید را به حالت ردیابی (track) اضافه میکند
- تغییرات فایلهای اصلاحشده را stage میکند
- حذف فایلها را stage میکند
- امکان انتخاب دقیق تغییرات برای commit را فراهم میکند
- قابلیت stage کردن تکهای تغییرات با
-p
نحوه استفاده
git add [گزینهها] [فایل...]<
موارد کاربرد رایج
- Stage کردن فایلهای خاص برای ساخت commitهای تمیز
- Stage کردن تمام پروژه با استفاده از
-Aیا. - بررسی قبل از Stage با استفاده از
-n - ثبت قصد اضافه کردن بدون Stage کردن محتوا
- Stage کردن تکهبهتکه تغییرات (برای کنترل بهتر)
مثالهای پایه
# Add a single file git add file1.txt # Add multiple files git add file1.txt file2.txt # Add all changes (new, modified, deletions) git add -A # Add all changes in the current directory git add . # Interactive staging (choose hunks) git add -p # Show what would be added (dry run) git add -n # Add file but don't stage content (just the intent) git add --intent-to-add bigFile.zip
مثالهای پیشرفته
# Add all C# files in a folder git add src/**/*.cs # Force add an ignored file (dangerous!) git add -f logs/debug.log # Add modified files, ignoring deletions git add --ignore-removal . # Handle files with spaces in their names git add "My File.txt"
مقایسه git add و git commit
| ویژگی | git add | git commit |
|---|---|---|
| هدف | انتقال تغییرات به staging | ذخیره تغییرات staged در تاریخچه |
| تغییر Working Directory؟ | خیر | خیر |
| تغییر Staging Area؟ | بله | خیر |
| ساخت snapshot؟ | خیر | بله |
| میزان کنترل | بسیار بالا (انتخابی) | تمام چیزهایی که Stage شده |
به زبان ساده:
git add مشخص میکند چه چیزی commit شود.
git commit مشخص میکند کی ذخیره شود.
اشتباهات رایج
- استفاده از git add -A بدون بررسی که باعث Stage شدن حذفهای ناخواسته میشود.
- فراموشی Stage کردن فایلهای جدید و انتظار commit شدن آنها.
- تصور اشتباه اینکه git add خودش commit میکند.
- Force کردن فایلهای Ignored بدون دلیل منطقی.
- Stage کردن فایلهای حجیم بدون اینکه بفهمید حجم commit را خراب میکند.
- استفاده از git add . در مسیر اشتباه و Stage شدن فایلهای ناخواسته.
بهترین شیوهها (Best Practices)
- از
git add -pبرای کنترل دقیق استفاده کنید. - تغییرات مرتبط را در یک commit قرار دهید.
- از Stage کردن فایلهای تولیدشده (build outputs) خودداری کنید.
- قبل از commit، خروجی
git statusرا بررسی کنید. .gitignoreرا بهدرستی مدیریت کنید.- Commitهای کوچک و شفاف بسازید تا تاریخچه قابلپیگیری باشد.
محدودیتها
- فایلهای Ignored بدون
-fاضافه نمیشوند -nهیچ چیزی را Stage نمیکندintent-to-addفقط قصد افزودن را ثبت میکند- فایل باید در سیستم وجود داشته باشد (بهجز intent-to-add)