همیشه سعی کنید example های هر پکیجی که میخواید استفاده کنیدو چک کنید؛ یکی از مشکلات برای کلون کردن این پوشههای example اینکه گیت هاب بصورت دیفالت این قابلیت رو نداره و شما مجبورید کل ریپوزیتوری رو کلون کنید! تا به پوشه example دسترسی داشته باشید.
خب این مشکل چطور حل میشه؟
با sparseCheckout، بریم ببینیم چطوره
در حالت عادی اگه بخوایم یه ساب دایرکتوری (زیرپوشه!) رو از گیت هاب کلون کنیم ارور میده:
git clone https://github.com/terroo/fonts/files Cloning into 'files' ... remote: Not Found fatal: repository 'https://github.com/terroo/fonts/files/' not found
میبینید که ساب دایرکتوری "files" رو نتونست پیدا کنه.
# هر جا میخواید پروژه رو کلون کنید یه پوشه ایجاد کنید؛ حالا با دستور زیر یا با فایل اکسپلورر mkdir my-dir && cd my-dir
# با ترمینال یا بش داخل مسیری که ساختید برید و گیت رو اینیشیال کنید git init
# مسیر اصلی پروژه (بدون ساب دایرکتوریها) رو بهش ریموت بزنید git remote add -f origin https://github.com/terroo/fonts/
# با دستور زیر پراپرتی زیر رو فعال کنید git config core.sparseCheckout true
# یه فایل به نام sparse-checkout داخل مسیر git/info بسازید و ساب دایرکتوری که میخواید کلون کنیدو داخلش وارد کنید (اینجا ساب دایرکتوری من files هست) شما میتونید با دستور اینکارو انجام بدید یا با فایل اکسپلورر لینوکس و ویندوز یا مک echo 'files' >> .git/info/sparse-checkout
echo 'files' >> .git/info/sparse-checkout
# حالا وقتی از مستر pull کنید ساب دایرکتوری که وارد کردید کلون میشه git pull origin master