| GIT-LFS-MERGE-DRIVER(1) | GIT-LFS-MERGE-DRIVER(1) |
نام (NAME)
git-lfs-merge-driver - ادغام فایلهای متنی Git LFS
خلاصه دستور (SYNOPSIS)
git lfs merge-driver [options]
توضیحات (DESCRIPTION)
فایلهای متنی ذخیرهشده در Git LFS را با استفاده از سازوکار پیشفرض ادغام گیت، یا در صورت مشخص شدن، با یک درایور ادغام سفارشی ادغام میکند. توجه داشته باشید که این دستور بهطور کلی از تغییر نام یا کپیهای جزئی پشتیبانی نمیکند، زیرا گیت در این حالت از آنها پشتیبانی نمیکند.
این برنامه بهگونهای طراحی شده است که بهطور خودکار توسط گیت فراخوانی شود، نه بهصورت دستی توسط کاربران. برای جزئیات مربوط به پیکربندی لازم جهت این کار، بخش پیکربندی (CONFIGURATION) را ببینید.
گزینهها (OPTIONS)
--ancestor <path>
--current <path>
--marker-size <num>
--other <path>
--output
--program <program>
برای دنبالههایی که در اینجا جایگذاری میشوند، بخش پیکربندی (CONFIGURATION) را ببینید.
پیکربندی (CONFIGURATION)
گیت بر اساس صفت merge تعیینشده در .gitattributes، امکان استفاده از یک درایور ادغام سفارشی برای فایلها را فراهم میکند. بهطور پیشفرض، هنگام استفاده از git lfs track، این مقدار روی lfs تنظیم میشود.
از آنجا که Git LFS میتواند هم برای ذخیرهٔ فایلهای متنی و هم باینری استفاده شود و همواره مشخص نیست که کدام رفتار باید به کار گرفته شود، Git LFS این درایور ادغام را بهطور پیشفرض فعال نمیکند. با این حال، اگر میدانید که برخی یا همهٔ فایلهای شما فایلهای متنی هستند، میتوانید صفت merge را برای آن فایلها روی lfs-text تنظیم کرده و با استفاده از git config درایور ادغام را به این شکل پیکربندی کنید:
$ git config merge.lfs-text.driver 'git lfs merge-driver --ancestor %O --current %A --other %B --marker-size %L --output %A'
این دستور به گیت میگوید تا درایور ادغام سفارشی Git LFS را که به نوبهٔ خود از سازوکار ادغام گیت بهره میبرد، برای ادغام فایلهایی که صفت merge آنها روی lfs-text تنظیم شده است فراخوانی کند. توجه داشته باشید که lfs-text در اینجا یک مثال است و هر مقدار معتبر از نظر نحوی میتواند استفاده شود.
اگر از نوع خاصی از فایل استفاده میکنید که به قوانینی متفاوت از سازوکار ادغام استاندارد گیت نیاز دارد، میتوانید گزینهٔ --program را نیز مشخص کنید که پس از جایگذاری نویسههای گریز درصدی خودش، به sh ارسال میشود:
توجه داشته باشید که علامت درصد معمولاً باید تکرار شود (دو بار نوشته شود) تا از جایگذاری مقادیر خود گیت در اینجا جلوگیری شود. بنابراین، مشخص کردن صریح رفتار پیشفرض به شکل زیر خواهد بود:
$ git config merge.lfs-text.driver \ 'git lfs merge-driver --ancestor %O --current %A --other %B --marker-size %L --output %A --program '\''git merge-file --stdout --marker-size=%%L %%A %%O %%B >%%D'\'''
وضعیت خروج (exit status) دستور سفارشی باید در صورت موفقیت صفر، و در صورت بروز تعارض یا سایر شکستها غیرصفر باشد.
توجه داشته باشید که اگر هیچ درایور ادغامی برای مقدار صفت merge مشخص نشده باشد (همانطور که بهطور پیشفرض با merge=lfs چنین است)، راهبرد پیشفرض ادغام گیت استفاده میشود. برای فایلهای LFS، این بدان معناست که گیت تلاش خواهد کرد تا فایلهای نشانگر (pointer files) را ادغام کند، که معمولاً مفید نیست.
همچنین ببینید (SEE ALSO)
git-merge(1), git-merge-file(1), gitattributes(5)
بخشی از مجموعهٔ git-lfs(1).