از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از زیر ماژول های Git – با مثال توضیح داده شده است
سرفصلهای مطلب
Git بدون شک یک ابزار بسیار مهم برای توسعه دهندگان است، زیرا به ما کمک می کند تا به طور یکپارچه با هم همکاری کنیم، تغییرات را به طور موثر پیگیری کنیم و یکپارچگی پروژه را در محیط های توزیع شده حفظ کنیم.
با این حال، با افزایش پیچیدگی و دامنه پروژه ها، وابستگی آنها نیز افزایش می یابد. به همین دلیل، نیاز به مکانیزمی برای مدیریت صحیح این وابستگی ها در حین رشد وجود دارد. این مکانیسم به عنوان زیر ماژول های Git شناخته می شود.
در این مقاله، ما به دنیای زیرماژولهای Git میپردازیم تا درک بهتری از روش عملکرد آنها داشته باشیم.
پیش نیازها
- درک اولیه از Git و GitHub.
- Git نصب شده است.
ساب ماژول های Git چیست؟
یک زیر ماژول Git به یک مخزن Git اشاره دارد که در یک مخزن Git دیگر وجود دارد.
شما می توانید آن را به عنوان یک مخزن فرزند یا زیر مجموعه ای از یک مخزن اصلی در نظر بگیرید.
زیرماژولهای Git روشی ساختاریافته برای گنجاندن مخازن خارجی در یک پروژه ارائه میکنند و در عین حال مزایای نگهداری جداگانه یک مخزن را حفظ میکنند.
تفاوت بین Repository و Submodule
یک زیر ماژول نیز یک مخزن است. تنها تفاوت بین یک زیر ماژول و یک مخزن در این واقعیت است که یک زیر ماژول فقط می تواند به عنوان یک مخزن Git در یک مخزن دیگر وجود داشته باشد. اگر یک زیر ماژول در خارج از یک مخزن وجود داشته باشد، دیگر نمی توان آن را زیر ماژول نامید. فقط می توان به آن به عنوان یک مخزن اشاره کرد.
همه زیر ماژول ها مخزن هستند اما همه مخازن زیر ماژول نیستند.
چگونه یک زیر ماژول Git اضافه کنیم
برای اضافه کردن یک زیرماژول Git، ابتدا مطمئن شوید که در یک مخزن Git هستید و URL مخزن راه دوری را که میخواهید به عنوان یک زیر ماژول اضافه کنید، دارید.
سپس، استفاده کنید git submodule add
دستور، و سپس URL مخزنی که می خواهید اضافه کنید.
git submodule add <submodule_url>
دستور بالا زیر ماژول را در قسمت اضافه می کند root سطح مخزن اصلی شما به طور پیش فرض.
برای تعیین دایرکتوری که می خواهید زیر ماژول در مخزن اصلی شما قرار گیرد، آرگومان path را به دستور اضافه کنید.
git submodule add <submodule_url> <path>
جایی که:
<submodule_url>
URL مخزن Git است که می خواهید به عنوان یک زیر ماژول اضافه کنید.<path>
مسیری است که می خواهید زیر ماژول در مخزن شما اضافه شود.
فایل gitmodules
پس از ایجاد یک زیر ماژول جدید git با git submodule add
دستور، یک فایل جدید به آن اضافه خواهد شد root سطح مخزن اصلی شما آن فایل است gitmodules فایل.
gitmodules یک فایل پیکربندی است که توسط Git برای ذخیره اطلاعات مربوط به زیر ماژول های موجود در یک مخزن استفاده می شود. این شامل جزئیات مربوط به هر زیر ماژول، مانند URL ها و مسیرهای آنها است.
این فایل کمک می کند تا اطمینان حاصل شود که وقتی یک مخزن را با زیر ماژول ها کلون یا به روز می کنید، Git می داند که محتویات زیر ماژول را از کجا واکشی کند و از چه نسخه هایی از زیر ماژول ها استفاده کند.
در اینجا یک مثال از آنچه که gitmodules فایل به نظر می رسد:
[submodule "example"]
path = example
url = https://github.com/example/example.git
اگر بیش از یک زیر ماژول در پروژه خود دارید، این همان چیزی است که شما دارید gitmodules فایل به شکل زیر خواهد بود:
[submodule "submodule1"]
path = submodule1
url = https://github.com/example/submodule1.git
[submodule "submodule2"]
path = submodule2
url = https://github.com/example/submodule2.git
[submodule "submodule3"]
path = submodule3
url = https://github.com/example/submodule3.git
چگونه یک زیر ماژول اضافه نکنیم
گاهی اوقات ممکن است وسوسه شوید که از آن استفاده کنید git clone
دستور اضافه کردن یک مخزن به عنوان یک وابستگی در مخزن شما. شما باید در برابر آن وسوسه مقاومت کنید!
اگر از git clone
دستور، پیام زیر را دریافت خواهید کرد روی Git Bash شما terminal: “شما یک مخزن git دیگر در مخزن فعلی خود اضافه کرده اید. کلون های مخزن خارجی حاوی محتویات مخزن تعبیه شده نیستند و نمی دانند چگونه آن را به دست آورند…”
این پیام را در حالی دریافت کردم که سعی می کردم یک زیر ماژول به آن اضافه کنم theme/anake
دایرکتوری با استفاده از git clone
فرمان
به طور عمده دو دلیل وجود دارد که چرا نباید از این دستور استفاده کنید:
- هنگامی که کد خود را به مخزن راه دور خود فشار دهید، دایرکتوری زیرماژول خالی خواهد بود.
- کلون های مخزن خارجی (مخزن اصلی) حاوی محتویات مخزن تعبیه شده (زیر ماژول) نیستند و نمی دانند که چگونه آن را بدست آورند، همانطور که توسط Git در پیام بالا بیان شده است.
و دلایل فوق مسائلی هستند که از نداشتن آن ناشی می شوند gitmodules فایل (که هنگام استفاده از فایل به طور خودکار اضافه می شود git submodule add
فرمان) در root سطح مخزن اصلی شما
اضافه کردن دستی gitmodules فایل در root سطح مخزن اصلی شما مشکلات فوق را برطرف می کند. با این حال، ایجاد یک زیر ماژول با استفاده از git submodule add
فرمان از آنها جلوگیری می کند.
چگونه یک مخزن را با یک زیر ماژول Git کلون کنیم
دو دستور وجود دارد که باید هر زمان که می خواهید مخازن با زیر ماژول ها را کلون کنید آنها را به خاطر بسپارید. آن دستورات عبارتند از:
git submodule init
: این دستور زیر ماژول های تعریف شده در مخزن را مقداردهی اولیه می کند. وقتی یک مخزن حاوی زیر ماژول ها را کلون می کنید، Git به طور خودکار محتویات زیر ماژول را واکشی نمی کند. شما باید بدوید git submodule init
ابتدا آنها را مقداردهی اولیه کنید.
Git را می خواند gitmodules فایل در مخزن برای پیکربندی زیر ماژول ها و آماده شدن برای واکشی محتویات زیر ماژول در هنگام اجرا git submodule update
.
git submodule update
: این دستور آخرین commit ها را از مخازن زیر ماژول واکشی می کند.
اگر commit های جدیدی در مخازن زیر ماژول وجود دارد، ممکن است لازم باشد اجرا کنید git submodule update
برای به روز رسانی زیر ماژول ها به آخرین وضعیت.
برای شبیه سازی مخازن دارای زیر ماژول ها، اولین کاری که باید انجام دهید اجرای آن است git clone
دستور برای آن مخزن.
git clone <repository_URL>
پس از آن، را اجرا کنید git submodule init
فرمان در root سطح مخزن اصلی
git submodule init
سپس، در نهایت، را اجرا کنید git submodule update
فرمان
git submodule update
نتیجه
زیرماژول های Git به عنوان مکانیزمی برای مدیریت موثر وابستگی ها در یک پروژه عمل می کنند. آنها امکان ادغام یکپارچه مخازن خارجی را در یک پروژه اصلی، حفظ مرزهای واضح بین اجزا و در عین حال تسهیل همکاری فراهم می کنند.
با استفاده از زیر ماژولها، توسعهدهندگان میتوانند جریان کار را سادهسازی کنند، یکپارچگی پروژه را حفظ کنند و همکاری کارآمد را تسهیل کنند، و در نهایت به فرآیندهای توسعه قویتر و مقیاسپذیر کمک کنند.
منتشر شده در 1403-05-07 23:40:14