
آیا تا به حال فکر کرده اید که تفاوت بین دستورات چیست؟ git add و git add -A?
پاسخ دقیق به نسخه Git که استفاده می کنید بستگی دارد. که در Git 2.x (که احتمالا از آن استفاده می کنید):
- اگر در فهرست کاری کار می کنید، git add. و git add -A دقیقا همین کار را کرد
- اگر در یک زیر شاخه از فهرست کاری کار می کنید، git add -A همه فایل ها را در کل فهرست کار اضافه می کند، اما git add. فقط فایل های موجود در فهرست فعلی را اضافه می کند.
بیایید به تفاوت بین گزینه های مختلف نگاه کنیم git add فرمان شما همچنین یک مثال خاص پیدا خواهید کرد که از درک تفاوت بین آنها پشتیبانی می کند git add. و git add -A.
مقایسه گزینه های مختلف با “git add”.
در اینجا جدولی وجود دارد که تفاوت های بین آنها را خلاصه می کند git add. و git add -A و همچنین برخی دیگر git add تنظیمات:
فرمان | مخفف برای | شرح |
---|---|---|
git add -A | git add –all | همه را صحنه جدید، اصلاح شدهو حذف شده فایل ها |
git add. | – | همه را صحنه جدید، اصلاح شدهو حذف شده فایل ها در پوشه فعلی |
git add –ignore-removal. | – | صحنه جدید و اصلاح شده فقط فایل ها |
git add -u | git add –update | صحنه اصلاح شده و حذف شده فقط فایل ها |
نمونه تظاهرات
بیایید یک مثال عینی ببینیم که تفاوت واضح بین را نشان می دهد git add. و git add -A.
من یک نمونه پروژه Git با ساختار زیر دارم:
/DemoProject .git/ examples/ example1.txt file1.txt
حالا بیایید تغییر کنیم file1.txt در فهرست کاری پروژه سپس برو به مثال ها پوشه و تغییر دهید example1.txt فایل.
در پوشه نمونه، اجازه دهید انجام دهیم وضعیت git دستور:
همانطور که پنجره ترمینال در زیر شاخه باز می شود مثال هاوضعیت نشان می دهد که تغییری در پوشه والد وجود دارد ../file1.txt و example1.txt.
حالا بیایید ببینیم وقتی می دویم چه اتفاقی می افتد git add.
$ git add .
در نتیجه، تغییرات در فهرست فعلی برای commit آماده می شوند. اما همانطور که یاد گرفتید، git add. دستور تغییرات را در پوشه های والد قرار نمی دهد! از همین رو file1.txt تغییرات افزایشی نیستند
برای انجام همه تغییرات در دایرکتوری فعلی و همچنین دایرکتوری والد، می توانید از git add -A استفاده کنید.
$ git add -A
اکنون تغییرات در هر دو مکان آماده انجام هستند:
با تشکر برای خواندن. کد نویسی مبارک!