GIT-LFS-FETCH(1)   GIT-LFS-FETCH(1)

git-lfs-fetch - بارگیری تمام فایل‌های Git LFS برای یک ارجاع (ref) مشخص

git lfs fetch [options] [<remote> [<ref>...]]
git lfs fetch [options] <remote> --stdin

اشیای Git LFS را در ارجاع‌های (refs) مشخص‌شده از مخزن دوردست (remote) تعیین‌شده بارگیری می‌کند. برای بررسی آنچه در صورت عدم تعیین رخ می‌دهد، بخش‌های «مخزن دوردست پیش‌فرض (DEFAULT REMOTE)» و «ارجاع‌های پیش‌فرض (DEFAULT REFS)» را ببینید.

این دستور نسخهٔ کاری را به‌روزرسانی نمی‌کند.

-I <paths>, --include=<paths>

تعیین مقدار lfs.fetchinclude صرفاً برای همین اجرا؛ بخش «شمول و عدم شمول (INCLUDE AND EXCLUDE)» را ببینید.

-X <paths>, --exclude=<paths>

تعیین مقدار lfs.fetchexclude صرفاً برای همین اجرا؛ بخش «شمول و عدم شمول (INCLUDE AND EXCLUDE)» را ببینید.

-r, --recent

بارگیری اشیایی که علاوه بر مواردی که در حالت معمول بارگیری می‌شدند، توسط شاخه‌ها و کامیت‌های اخیر ارجاع داده شده‌اند. بخش «تغییرات اخیر (RECENT CHANGES)» را ببینید.

-a, --all

بارگیری تمام اشیایی که توسط هر کامیتی که از ارجاع‌های داده‌شده به عنوان آرگومان قابل دسترسی است، ارجاع داده شده‌اند. اگر هیچ ارجاعی ارائه نشود، تمام ارجاع‌ها واکشی می‌شوند. این گزینه در درجهٔ اول برای مقاصد پشتیبان‌گیری و مهاجرت است. این گزینه نمی‌تواند با --recent یا --include/--exclude ترکیب شود. برای اطمینان از بارگیری تمام اشیا، هرگونه مسیر شمول و عدم شمول که به صورت سراسری پیکربندی شده است نادیده گرفته می‌شود.

--stdin

خواندن فهرستی از ارجاع‌های جداشده با خط جدید از ورودی استاندارد به جای خط فرمان.

-p, --prune

هرس کردن اشیای قدیمی و بدون ارجاع پس از واکشی، معادل اجرای دستور git lfs prune پس از آن. برای جزئیات بیشتر به git-lfs-prune(1) مراجعه کنید.

--refetch

واکشی مجدد اشیایی که از پیش به صورت محلی موجود هستند.

-d, --dry-run

چاپ مواردی که واکشی خواهند شد، بدون اینکه عملاً چیزی واکشی شود.

-j, --json

در صورتی که دستور با موفقیت خارج شود، جزئیات تمام درخواست‌های انتقال اشیا را به صورت JSON در خروجی استاندارد (STDOUT) می‌نویسد. این گزینه برای تعامل با ابزارهای خارجی در نظر گرفته شده است. هنگامی که --dry-run نیز مشخص شده باشد، جزئیات انتقال‌هایی را می‌نویسد که در صورت واکشی اشیا انجام می‌شد.

می‌توانید Git LFS را به‌گونه‌ای پیکربندی کنید که فقط اشیا را برای برآورده کردن ارجاع‌ها در مسیرهای خاصی از مخزن واکشی کند، و/یا مسیرهای خاصی از مخزن را مستثنی کنید، تا مدت زمانی که صرف بارگیری مواردی می‌کنید که استفاده نمی‌کنید کاهش یابد.

در پیکربندی گیت خود یا در یک فایل .lfsconfig، می‌توانید یکی یا هر دوی lfs.fetchinclude و lfs.fetchexclude را با فهرست‌هایی از مسیرها که با کاما از هم جدا شده‌اند مقداردهی کنید. اگر lfs.fetchinclude تعریف شده باشد، اشیای Git LFS تنها در صورتی واکشی می‌شوند که مسیر آن‌ها با یکی از مسیرهای آن فهرست مطابقت داشته باشد، و اگر lfs.fetchexclude تعریف شده باشد، اشیای Git LFS تنها در صورتی واکشی خواهند شد که مسیر آن‌ها با هیچ‌یک از مسیرهای آن فهرست مطابقت نداشته باشد. تطبیق مسیرها با استفاده از الگوهای وایلدکارد طبق gitignore(5) انجام می‌شود.

توجه داشته باشید که استفاده از گزینه‌های خط فرمان -I و -X بر تنظیمات پیکربندی مربوطه اولویت دارد. تنظیم هر یک از گزینه‌ها با یک رشتهٔ خالی مقدار آن را پاک می‌کند.

•git config lfs.fetchinclude "textures,images/foo*"

این تنظیم فقط اشیای ارجاع داده شده در مسیرهای پوشهٔ textures و فایل‌های با نام *foo در پوشهٔ images را واکشی می‌کند.

•git config lfs.fetchinclude ".jpg,.png,*.tga"

فقط فایل‌های JPG/PNG/TGA در هر جای مخزن که باشند واکشی می‌شوند.

•git config lfs.fetchexclude "media/reallybigfiles"

هیچ یک از اشیای LFS ارجاع داده شده در پوشهٔ media/reallybigfiles را واکشی نمی‌کند، اما همهٔ موارد دیگر را واکشی می‌کند.

•git config lfs.fetchinclude "media"
git config lfs.fetchexclude "media/excessive"

فقط اشیای LFS موجود در پوشهٔ 'media' را واکشی می‌کند، اما اشیای موجود در یکی از زیرپوشه‌های آن را مستثنی می‌سازد.

بدون آرگومان، دستور fetch از مخزن دوردست پیش‌فرض بارگیری می‌کند. مخزن دوردست پیش‌فرض همانند git fetch است، یعنی در درجهٔ اول بر اساس شاخهٔ دوردستی که ردیابی می‌کنید، یا در غیر این صورت origin خواهد بود.

اگر هیچ ارجاعی به عنوان آرگومان داده نشود، از ارجاع فعلی که تحویل گرفته شده (checked out) استفاده می‌شود. علاوه بر این، در صورت فعال بودن، ارجاع‌ها و کامیت‌های اخیراً تغییریافته نیز گنجانده می‌شوند. برای جزئیات به «تغییرات اخیر (RECENT CHANGES)» مراجعه کنید.

اگر گزینهٔ --recent مشخص شده باشد، یا اگر گزینهٔ gitconfig به نام lfs.fetchrecentalways برابر با true باشد، آن‌گاه پس از واکشی ارجاع فعلی (یا موارد موجود در آرگومان‌ها)، برای تغییرات «اخیر» نیز جستجو می‌کنیم تا اشیای آن‌ها واکشی شوند، تا تحویل گرفتن یا ایجاد diff برای آن کامیت‌ها بدون تحمیل بارگیری‌های بیشتر راحت‌تر باشد.

اینکه چه تغییراتی «اخیر» محسوب می‌شوند بر اساس تعدادی از گزینه‌های gitconfig تعیین می‌گردد:

lfs.fetchrecentrefsdays

در صورت غیرصفر بودن، شاخه‌هایی را که دارای کامیت‌هایی در بازهٔ N روز از تاریخ فعلی هستند شامل می‌شود. تنها ارجاع‌های محلی گنجانده می‌شوند مگر آنکه lfs.fetchrecentremoterefs برابر با true باشد. مقدار پیش‌فرض 7 روز است.

lfs.fetchrecentremoterefs

اگر true باشد، ارجاع‌های دوردست (برای مخزن دوری که از آن واکشی می‌کنید) و همچنین ارجاع‌های محلی در پنجرهٔ اخیر را واکشی می‌کند. این قابلیت برای واکشی اشیا برای شاخه‌های دوردستی که ممکن است بعداً بخواهید تحویل بگیرید مفید است. مقدار پیش‌فرض true است؛ اگر آن را روی false تنظیم کنید، واکشی برای آن شاخه‌ها تنها زمانی رخ می‌دهد که یا آن‌ها را تحویل بگیرید (که مزیت fetch --recent را از بین می‌برد)، یا یک شاخهٔ محلی ردیاب را به طور جداگانه ایجاد کرده و سپس دوباره واکشی را انجام دهید.

lfs.fetchrecentcommitsdays

علاوه بر واکشی در شاخه‌ها، تغییرات ایجادشده در بازهٔ N روز از آخرین کامیت روی شاخه را نیز واکشی می‌کند. اگر معمولاً تغییرات اخیر را بازبینی می‌کنید این گزینه مفید است. مقدار پیش‌فرض 0 است (بدون تغییرات قبلی).

lfs.fetchrecentalways

همیشه به گونه‌ای رفتار می‌کند که گویی --recent در خط فرمان مشخص شده است.

•واکشی اشیای LFS برای ارجاع فعلی از مخزن دوردست پیش‌فرض

git lfs fetch

•واکشی اشیای LFS برای ارجاع فعلی و تغییرات اخیر از مخزن دوردست پیش‌فرض

git lfs fetch --recent

•واکشی اشیای LFS برای ارجاع فعلی از یک مخزن دوردست ثانویه با نام 'upstream'

git lfs fetch upstream

•واکشی تمام اشیای LFS از مخزن دوردست پیش‌فرض که توسط هر کامیتی در شاخه‌های main و develop ارجاع داده شده‌اند

git lfs fetch --all origin main develop

•واکشی اشیای LFS برای یک شاخه از origin

git lfs fetch origin mybranch

•واکشی اشیای LFS برای ۲ شاخه و یک کامیت از origin

git lfs fetch origin main mybranch e445b45c1c9c6282614f201b62778e4c0688b5c8

git-lfs-checkout(1), git-lfs-pull(1), git-lfs-prune(1), gitconfig(5).

بخشی از مجموعهٔ git-lfs(1).