{m:info}(نوشته از Jason Karns در Code Nomad)
ممکنه یک زمانی بخواهید از یک مخزن Git فقط یک قسمت/پوشه خاص رو دریافت کنین و آپدیت نگهاش دارین. برای اینکار باید از امکان spare-checkout گیت استفاده کنید.
مخزن جدید
برای اینکه بشه از این امکان استفاده کرد، باید تو تنظیمات مخزن گیت core.sparecheckout
مقدار true
تظیم بشه. برای اینکار هم لازمهاش اینه که مخزن از قبل وجود داشته باشه. پس به جای اینکه git clone
کرد، باید git init
انجام داد.
مخزن جدید رو بسازید:
mkdir <repo> && cd <repo> git init git remote add –f <name> <url>
امکان spare-checkout رو فعال کنید:
git config core.sparsecheckout true
زیر شاخههایی که میخواین رو در .git/info/spare-checkout
اضافه کنید:
echo some/dir/ >> .git/info/sparse-checkout echo another/sub/tree >> .git/info/sparse-checkout
حالا مخزن رو از سرور pull
کنید:
git pull <remote> <branch>
مخزن موجود
اگر از قبل یک مخزن دارید و میخواید spare-checkout استفاده کنید، مثل مورد بالا spare-checkout رو فعال کنین و بعد هم git read-tree
رو انجام بدین:
git config core.sparsecheckout true
اضافه کردن شاخههای مورد نیاز به .git/info/spare-checkout
:
echo some/dir/ >> .git/info/sparse-checkout echo another/sub/tree >> .git/info/sparse-checkout
مخزن رو آپدیت کنین:
git read-tree -mu HEAD
تغییر زیرشاخههای انتخاب شده
اگر بعداً تصمیم گرفتین که زیرشاخههایی که انتخاب کردین رو تغییر بدین، خیلی راحت پرونده spare-checkout رو تغییر بدین و بعد هم git read-tree
رو دوباره اجرا کنین.
مستندات مربوط به sub-tree/spare-checkout رو بخونید. پرونده spare-tree از الگوها هم پشتیبانی میکنه، دقیقا مثل gitignore. از لیست سیاه هم پشتیبانی میشه - میتونید انتخاب کنید که چه شاخهها یا پروندههای checkout
نشن.