git-annex-add(1) General Commands Manual git-annex-add(1)

git-annex-add - افزودن فایل‌ها به ضمیمه گیت (git annex)

git annex add [path ...]

فایل‌های مشخص‌شده را به ضمیمه (annex) اضافه می‌کند. اگر یک دایرکتوری مشخص شود، بر روی تمام فایل‌های درون آن دایرکتوری و زیردایرکتوری‌هایش عمل می‌کند. اگر هیچ مسیری مشخص نشود، فایل‌ها از دایرکتوری فعلی و زیر آن اضافه می‌شوند.

فایل‌هایی که از قبل در گیت ثبت شده‌اند و تغییر نیافته‌اند، یا فایل‌هایی که گیت برای نادیده گرفتن آن‌ها پیکربندی شده است، بدون نمایش هیچ پیامی نادیده گرفته می‌شوند.

اگر annex.largefiles پیکربندی شده باشد (در git config، gitattributes یا پیکربندی git-annex) و با فایلی مطابقت نداشته باشد، git annex add رفتاری مشابه با git add خواهد داشت و فایل غیربزرگ (non-large) را به جای ضمیمه، مستقیماً به مخزن گیت اضافه می‌کند. (به‌طور پیش‌فرض، dotfileها و محتویات dotdirها غیربزرگ در نظر گرفته می‌شوند و مستقیماً به گیت اضافه می‌شوند، اما می‌توان annex.dotfiles را طوری پیکربندی کرد که آن‌ها نیز به ضمیمه اضافه شوند.) برای مستندات مربوط به این موارد و سایر تنظیمات پیکربندی، به صفحه راهنمای git-annex مراجعه کنید.

به‌طور پیش‌فرض، فایل‌های بزرگ به صورت قفل‌شده (locked) به ضمیمه اضافه می‌شوند، که از تغییرات بعدی محتوای آن‌ها تا زمان باز شدن قفل توسط git-annex-unlock(1) جلوگیری می‌کند. (البته این حالت زمانی که مخزن روی سیستم‌فایلی باشد که از پیوندهای نمادین پشتیبانی نمی‌کند، صدق نمی‌کند.) تنظیم git config مربوط به annex.addunlocked (و پیکربندی git-annex) می‌تواند برای تغییر این رفتار استفاده شود.

این دستور همچنین می‌تواند برای افزودن پیوندهای نمادین (symlinks)، چه پیوندها به محتوای ضمیمه‌شده و چه سایر پیوندهای نمادین، استفاده شود.

# git annex add foo bar
add foo ok
add bar ok
# git commit -m added

افزودن فایل‌های نادیده‌گرفته‌شده در gitignore.
تمام فایل‌ها را بدون توجه به پیکربندی annex.largefiles و annex.dotfiles به عنوان فایل‌های بزرگ در نظر گرفته و به ضمیمه اضافه می‌کند.
تمام فایل‌ها را بدون توجه به پیکربندی annex.largefiles و annex.dotfiles و annex.addsmallfiles به عنوان فایل‌های کوچک در نظر گرفته و به گیت اضافه می‌کند.
مشخص می‌کند که از کدام بک‌اند کلید-مقدار (key-value backend) استفاده شود.
گزینه‌های تطبیق فایل (file matching options)
بسیاری از گزینه‌های git-annex-matching-options(1) می‌توانند برای تعیین فایل‌ها جهت افزودن استفاده شوند.
به عنوان مثال: --largerthan=1GB
افزودن هم‌روند چندین فایل به صورت موازی. این کار ممکن است سریع‌تر باشد. به عنوان مثال: -J4
تنظیم این مقدار روی "cpus" یک کار (job) را به ازای هر هسته پردازنده (CPU core) اجرا می‌کند.
مانند git add --update، این گزینه فایل‌های جدید را اضافه نمی‌کند، اما هرگونه به‌روزرسانی در فایل‌های ردیابی‌شده به ایندکس اضافه خواهد شد.
نمایش کارهایی که برای هر فایل انجام خواهد شد، بدون ایجاد هیچ‌گونه تغییری.
فعال‌سازی خروجی JSON. این گزینه برای تجزیه توسط برنامه‌هایی که از git-annex استفاده می‌کنند در نظر گرفته شده است. هر خط از خروجی یک شیء JSON است.
گنجاندن اشیای پیشرفت در خروجی JSON.
پیام‌هایی که به‌طور معمول در خروجی خطای استاندارد چاپ می‌شدند، در عوض در داخل JSON گنجانده می‌شوند.
فعال‌سازی حالت دسته‌ای (batch mode)؛ در این حالت، فایلی که باید اضافه شود در یک خط از ورودی استاندارد (stdin) خوانده می‌شود، فایل اضافه می‌گردد و این فرآیند تکرار می‌شود.
توجه داشته باشید که اگر فایلی نادیده گرفته شود (به دلیل موجود نبودن، نادیده گرفته شدن در gitignore، از قبل موجود بودن در گیت، یا برآورده نکردن گزینه‌های تطبیق)، به جای خروجی معمول حاصل از افزودن فایل، یک خط خالی تولید خواهد شد.
باعث می‌شود که ورودی --batch به جای خطوط جدید معمول، با نویسه‌های تهی (null) جدا شود.
همچنین می‌توان از گزینه‌های git-annex-common-options(1) استفاده کرد.

git-annex(1)

git-annex-unlock(1)

git-annex-lock(1)

git-annex-undo(1)

git-annex-import(1)

git-annex-unannex(1)

git-annex-reinject(1)

Joey Hess <id@joeyh.name>