GIT-LFS-PULL(1)   GIT-LFS-PULL(1)

git-lfs-pull - بارگیری تمام فایل‌های Git LFS برای مرجع جاری و تحویل گرفتن (checkout)

git lfs pull [options] [<remote>]

اشیاء Git LFS را برای مرجعِ جاریِ تحویل‌گرفته‌شده (checked out) بارگیری می‌کند و در صورت نیاز، نسخهٔ کاری (working copy) را با محتوای بارگیری‌شده به‌روزرسانی می‌نماید.

این کار معمولاً معادل اجرای دو دستور زیر است:

$ git lfs fetch [options] [<remote>]
$ git lfs checkout

اگر نسخهٔ گیتِ نصب‌شده حداقل ۲.۴۲.۰ باشد، در یک مخزن غیر bare این دستور به‌طور پیش‌فرض اشیاء Git LFS را برای فایل‌هایی دریافت و تحویل (checkout) می‌گیرد که فقط در نمایهٔ (index) گیت موجود باشند و با یک صفت فیلتر Git LFS از فایل .gitattributes موجود در نمایه یا درخت کاری فعلی مطابقت داشته باشند (یا مانند همیشه، اگر با یک صفت فیلتر Git LFS در یک فایل محلی gitattributes مانند $GIT_DIR/info/attributes مطابقت داشته باشند). این محدودیت‌ها در نسخه‌های قبلی گیت اعمال نمی‌شوند.

بنابراین، در مخزنی با شبیه‌سازی جزئی (partial clone) یا تحویل پراکنده (sparse checkout)، در صورتی که گیت نسخهٔ v2.42.0 یا بالاتر نصب شده باشد، توصیه می‌شود پیش از استفاده از این دستور، تمام فایل‌های .gitattributes را از HEAD تحویل بگیرید (check out کنید). متناوباً، می‌توان متغیر محیطی GIT_ATTR_SOURCE را برابر HEAD تنظیم کرد که باعث می‌شود گیت صفات را تنها از فایل‌های .gitattributes موجود در HEAD بخواند و موارد موجود در نمایه یا درخت کاری را نادیده بگیرد.

در یک مخزن bare، اگر نسخهٔ گیت نصب‌شده حداقل ۲.۴۲.۰ باشد، این دستور به‌طور پیش‌فرض اشیاء Git LFS را برای فایل‌ها تنها در صورتی دریافت می‌کند که در نمایهٔ گیت وجود داشته باشند و با یک صفت فیلتر Git LFS از فایل محلی gitattributes مانند $GIT_DIR/info/attributes مطابقت داشته باشند. هرگونه فایل .gitattributes موجود در HEAD نادیده گرفته خواهد شد، مگر آنکه متغیر محیطی GIT_ATTR_SOURCE برابر با HEAD تنظیم شده باشد، و هر فایل .gitattributes در نمایه یا درخت کاری فعلی همیشه نادیده گرفته می‌شود. این محدودیت‌ها در نسخه‌های قبلی گیت اعمال نمی‌شوند.

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

تنظیم lfs.fetchinclude فقط برای همین فراخوانی؛ بخش «شامل و مستثنی کردن (INCLUDE AND EXCLUDE)» را ببینید.

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

تنظیم lfs.fetchexclude فقط برای همین فراخوانی؛ بخش «شامل و مستثنی کردن (INCLUDE AND EXCLUDE)» را ببینید.

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

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

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

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

git-lfs-fetch(1), git-lfs-checkout(1), gitattributes(5), gitignore(5).

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