بعضی ریپازیتوری ها خیلی حجیم هستند ولی فقط دایرکتوری خاصی از اونو لازم داریم.
مثلا من پوشه examples از ریپازیتوری gatsby را لازم داشتم. ابتدا زدم کل ریپازیتوری دانلود شه. صبر کردم و صبر کردم… 866 مگابایت ناقابل دانلود شد:(
اما خب چه کاری بود! داکیومنت ها و کلی اضافات دیگه همراه فایل ها بود که اصلا به کارم نمیومد.
سرچ کردم که چطوری یک دایرکتوری خاص از ریپازیتوری را دانلود کنم. چند تا راه پیدا کردم که دو تاش از بقیه بهتر بود. منم جفتشو معرفی میکنم، اولی روش پرسرعت تره ولی در عوض دومی روش دم دست تریه.
Subversion یا svn یک ورژن کنترلر شبیه به git است که دیگه کمتر ازش استفاده میشه. اگه این ابزار روی کامپیوترتون نصب هست حتما از این روش استفاده کنید. روی manjaro بصورت پیشفرض نصب بود ولی در اوبونتو به سادگی از طریق مخازن میتونین نصبش کنید:
sudo apt install subversion
برای تست اینکه درست نصب شده یا نه در ترمینال دستور svn را بنویسید.
لینک ریپازیتوری مورد نظر را کپی کنید، بطور مثال:
https://github.com/hesamkaveh/Sansi
و بر فرض اگر دایرکتوری src/components از برنچ master را لازم دارید، آدرستون رو به شکل زیر تغییر بدین:
https://github.com/hesamkaveh/Sansi/trunk/src/components
trunk به این معناست که به master اشاره داریم.
یا اگر به برنچ دیگری مثل foo اشاره دارید کافیه به جای trunk بنویسید branches/foo
و نهایتا برای دانلود این دایرکتوری کافیه دستور زیر را بزنین:
svn export YOUTLINK
فراموش نکنید YOUTLINK را با لینک اصلاح شده در مرحله قبل جایگزین کنین.
این روش دم دست تریه چون git رو هر کامپیوتری نصبه و مام قراره از دستور git استفاده کنیم. ولی سرعتش کمتر از روش قبله.
مشابه روش اول
دستور زیر را در ترمینال وارد کنین:
git svn init YOUTLINK
همونطوری که میبینین تو این دستور هم یک جورایی از svn کمک گرفتیم.
فراموش نکنید YOUTLINK را با لینک اصلاح شده در مرحله قبل جایگزین کنید.
دستور زیر را وارد کنین:
git svn fetch
پ.ن:
دلیل اینکه سرعت متفاوته، اینه که روش اول فقط آخرین نسخه از فایل را دانلود میکنه، در صورتی که روش دوم کل commit ها را دانلود میکند.
پس روش دوم یجورایی میشه clone کردن کاستوم دایرکتوری درحالی که روش اول دانلود کردن کاستوم دایرکتوری محسوب میشه.