| git-annex-push(1) | General Commands Manual | git-annex-push(1) |
نام (NAME)
git-annex-push - ارسال محتوا به مخازن دوردست (ریموتها)
خلاصه دستور (SYNOPSIS)
git annex push [remote ...]
توضیحات (DESCRIPTION)
این دستور محتوا را به ریموتها ارسال (push) میکند. هم محتوای مخزن گیت و هم محتوای فایلهای ضمیمهشده (annexed) را بارگذاری مینماید.
میتوانید برای انجام کاری مشابه این دستور، از git push و git-annex copy بهصورت دستی استفاده کنید؛ اما این دستور چندین جزئیات را مدیریت میکند، از جمله اینکه مطمئن میشود شاخه git-annex به ریموت ارسال شود.
هنگام استفاده از git-annex، اغلب ریموتها مخازن bare نیستند، زیرا افزودن ریموت برای رایانههای نزدیک که میخواهید به همان محتوای ضمیمهشده دسترسی داشته باشند مفید است. ارسال داده به یک ریموت غیر bare معمولاً شاخه فعلی ریموت را با تغییرات مخزن محلی بهروزرسانی نمیکند (مگر اینکه ریموت با receive.denyCurrentBranch=updateInstead پیکربندی شده باشد).
برای تسهیل کار با چنین ریموتهای غیر bare، این دستور نه تنها شاخه محلی master را به master ریموت ارسال میکند، بلکه آن را به شاخه synced/master در ریموت نیز میفرستد (و بهطور مشابه برای سایر شاخهها). هنگامی که بعداً git-annex pull (یا git-annex sync) روی ریموت اجرا شود، شاخههای synced/ را که به آن ارسال شده بودند ادغام خواهد کرد.
برخی ریموتهای خاص اجازه برونبری درختی از فایلها به آنها را میدهند (exporttree=yes)، و این دستور میتواند برای ارسال به آن ریموتها و همچنین ریموتهای معمولی گیت استفاده شود. برای جزئیات در مورد نحوه کار این ریموتهای خاص، git-annex-export(1) را ببینید. برای اینکه این دستور بتواند به یک ریموت خاص برونبری کند، گزینه remote.<name>.annex-tracking-branch نیز باید پیکربندی شده باشد و مقداری برابر با شاخهٔ در حال حاضر فعال (checked out) داشته باشد.
هنگامی که از git-annex-adjust(1) برای بررسی و کار با یک شاخه تنظیمشده استفاده شده است، این دستور تغییرات اعمالشده را بدون انتشار تنظیمات، به شاخه والد برمیگرداند.
بهطور معمول این دستور تلاش میکند محتوای هر فایل ضمیمهشده را که در درخت کاری قرار دارد، به هر ریموتی که به آن ارسال میکند و نسخهای از آن ندارد، بارگذاری نماید. برای کنترل فایلهایی که به یک ریموت بارگذاری میشوند، محتوای ترجیحی (preferred content) ریموت را پیکربندی کنید. وقتی فایلی جزو محتوای ترجیحی یک ریموت یا مخزن محلی نباشد، این دستور سعی میکند محتوای فایل را دور بیندازد (drop کند). git-annex-preferred-content(1) را ببینید.
گزینهها (OPTIONS)
- [remote]
- بهطور پیشفرض، این دستور تغییرات را به تمام ریموتهای موجود ارسال میکند، به جز ریموتهایی که remote.<name>.annex-push (یا remote.<name>.annex-sync) آنها روی false تنظیم شده باشد، یا remote.<name>.annex-readonly آنها روی true باشد.
- با مشخص کردن نام ریموتها (یا گروههای ریموت)، میتوانید مشخص کنید به کدامیک ارسال صورت گیرد.
- --fast
- تنها ارسال به ریموتهایی با کمترین مقدار هزینه پیکربندیشده (annex-cost).
- هنگامی که فهرستی از ریموتها (یا گروههای ریموت) ارائه شود، از میان آنها انتخاب میکند، در غیر این صورت از میان تمام ریموتها انتخاب خواهد کرد.
- --only-annex -a, --not-only-annex
- تنها شاخه git-annex و محتوای ضمیمهشده را به ریموتها ارسال میکند، نه سایر شاخههای گیت را.
- پیکربندی annex.synconlyannex میتواند روی true تنظیم شود تا این حالت رفتار پیشفرض باشد. برای نادیده گرفتن چنین تنظیمی، از --not-only-annex استفاده کنید.
- هنگامی که این گزینه با --no-content ترکیب شود، تنها شاخه git-annex ارسال خواهد شد.
- --no-content, -g, --content
- از --no-content یا -g برای جلوگیری از بارگذاری (و دور انداختن) محتوای فایلهای ضمیمهشده استفاده کنید.
- اگر مکرراً از --no-content استفاده میکنید، میتوانید پیکربندی annex.synccontent را روی false قرار دهید تا از بارگذاری پیشفرض محتوا جلوگیری شود. گزینه --content این پیکربندی را نادیده میگیرد.
- --content-of=path -C path
- تنها بارگذاری (یا دور انداختن) فایلهای ضمیمهشده موجود در مسیر دادهشده.
- این گزینه میتواند چندین بار با مسیرهای مختلف تکرار شود.
- توجه داشته باشید که این گزینه مانع از برونبری سایر فایلها به یک ریموت با "exporttree=yes" نمیشود.
- --all -A
- معمولاً این دستور روی فایلهای ضمیمهشده در شاخه جاری عمل میکند. این گزینه باعث میشود دستور روی تمام نسخههای موجود از تمام فایلهای ضمیمهشده (در صورتی که تنظیمات محتوای ترجیحی اجازه دهند) اجرا شود.
- توجه داشته باشید تنظیمات محتوای ترجیحی که از include= یا exclude= استفاده میکنند، تنها با نسخه فایلهایی مطابقت دارند که در حال حاضر در درخت کاری هستند، نه با نسخههای پیشین فایلها.
- --jobs=N -JN
- ارسال موازی را با حداکثر تعداد کارهای مشخصشده بهطور همزمان فعال میکند. برای مثال: -J10
- تنظیم این مقدار روی "cpus" یک وظیفه را به ازای هر هسته پردازنده اجرا خواهد کرد.
- --cleanup
- شاخههای محلی و ریموت synced/ را که توسط git-annex push یا git-annex sync ایجاد و ارسال شده بودند، حذف میکند. این گزینه مانع از تمام فعالیتهای دیگر میشود.
- این گزینه زمانی مفید است که تغییری را به ریموتها ارسال کردهاید و اکنون میخواهید شاخه master خود را به پیش از آن تغییر برگردانید. بنابراین git reset را اجرا کرده و شاخه master را با اجبار (force-push) به ریموتها ارسال میکنید، اما متوجه میشوید که اجرای بعدی git annex merge یا git annex pull تغییرات را بازمیگرداند. چرا؟ زیرا شاخه synced/master همچنان وجود دارد و تغییرات هنوز در آن است. پاکسازی شاخههای synced/ از این مشکل جلوگیری میکند.
- همچنین گزینههای مشترک git-annex-common-options(1) قابل استفاده هستند.
همچنین ببینید (SEE ALSO)
git-annex(1)
git-annex-pull(1)
git-annex-sync(1)
git-annex-preferred-content(1)
git-annex-satisfy(1)
نویسنده (AUTHOR)
Joey Hess <id@joeyh.name>