اضافه کردن فایل‌ها

پیش‌نمایش دستور

            

نمای کلی

دستور 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 addgit 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)