1 دقیقه میانگین مدت زمان مطالعه است

یکی از امکانات جالبی که در git موجود هست که من هم تازه باهاش آشنا شدم، امکانی به اسم Submodules هست.
این ویژگی به شما این امکان رو میده که کدهای خود رو به پروژه های مختلف تقسیم کنید.
بطور مثال فرض کنید شما یک کامپوننت نوشتید که در برنامه های مختلف شرکت از اون استفاده میشه. راه ساده ای که وجود داره اینه که اون کامپوننت رو در پروژ های مختلف کپی کنید.
روشی که این قابلیت در اختیار شما میزاره به این صورت هست که میتونید کامپوننت خودتون رو بصورت جدا گسترش بدید تا هم تاریخچه جدا داشته باشه، هم در صورت آپدیت شدن نیاز نباشه در پروژه های مختلف اون رو بصورت دستی کپی کنید.

برای اضافه کردن Submodules به یک پروژه نیاز هست دستور زیر رو وارد کنیم:

git submodule add https://github.com/MHKarami97/Submodules

در کد بالا قسمت بعد از add آدرس ماژول شما هست که میخواید به پروژه فعلی اضافه کنید.

mhkarami97

با این کار پروژه ای که لینکش رو در بالا وارد کردید و همچنین فایل gitmodules به پروژه شما اضافه میشه.
این فایل دوم در واقع یک مپ بین فایل لوکال و ریموت submodules هست.

mhkarami97

برای اضافه کردن یک ماژول دیگه هم میتونید به همین صورت عمل کنید:

mhkarami97

بعد از اینکار تغییرات گیت برای پروژه اصلی بصورت زیر نشون داده میشه که میتونید کامیت کنید:

mhkarami97

حالا اگه تغییری در فایل های ماژول ها بدید، تغییرات اونها هم در پروژه اصلی و هم پروژه های ماژول نشون داده میشه:

mhkarami97

تنها نکته ای که هست اینه که برای کامیت اول باید تغییرات رو در ماژول ها کامیت کنید و بعد اجازه کامیت در پروژه اصلی رو دارید.

اگر یکی از ماژول تغییر کرده باشن، میتونید فقط اون پروژه رو pull کنید:

mhkarami97

برای کلون کردن پروژه اصلی که از ماژول های دیگه داخلش استفاده شده، علاوه بر دستور git clone ... که فایل های پروژه اصلی رو میگیره، نیاز به اجرای دستور زیر هم هست:

git submodule init

mhkarami97

و سپس برای آپدیت کردن و دریافت آخرین نسخه ماژول ها دستور زیر رو وارد کنید:

git submodule update

mhkarami97

ماژول های در ادیتور Rider :

mhkarami97

با این کار پروژه شما آماده استفاده هست.

داکیومنت اصلی:

Git-Tools-Submodules

لینک پروژه های ساخته شده:

Submodules

Submodules 2

Main Submodules