هنگام کار با شاخههای Git، اغلب لازم است شاخههای مختلفی مانند شاخههای «توسعه»، «رهاسازی» یا «مرحلهسازی» را نگه دارید. با Git، به راحتی میتوان یک شاخه را بهروز کرد تا آن را با شاخه دیگری بهروز نگه دارد، مانند بهروزرسانی شاخه انتشار برای شامل تغییرات در مرحلهبندی.
فوروارد سریع یک شاخه Git
در Git، شاخه ها فقط اشاره گر به یک commit خاص هستند که HEAD شاخه نامیده می شود. شاخه به سادگی یک برچسب است که می تواند وقتی شاخه با commit های جدید به روز می شود یا با دیگری ادغام می شود تغییر کند.
برای ادغام دو شاخه واگرا با هم، می توانید استفاده کنید git merge
. معمولاً، این یک “تعهد ادغام” ایجاد می کند که تاریخچه های دو شاخه را ترکیب می کند، مانند commit هایی از شاخه ویژگی که با یک درخواست کشش به شاخه اصلی کشیده می شود.
با این حال، اگر تاریخچه دو شاخه یکسان باشد، Git یک ادغام سریع به جلو ویژه انجام می دهد. در مثال بالا، release
شعبه HEAD در آن گنجانده شده است develop
تاریخچه، یعنی نیازی به ادغام commit نیست. بجای، release
برای اشاره به به روز رسانی می شود develop
.
چیز خاصی نداره git fast-forward
دستور برای این؛ این یک ادغام ساده مانند سایرین است. هنگام ادغام، می خواهید شاخه ای را که قرار است به آن ادغام کنید، بررسی کنید دريافت كردن تغییرات. در این مورد، release
آیا شعبه به روز می شود، بنابراین ما نسخه را بررسی می کنیم:
git checkout release
سپس میتوانیم شاخه توسعه را در آن ادغام کنیم، که فوروارد سریع را انجام میدهد:
git merge develop
اگر از یک کلاینت Git GUI استفاده می کنید، این فرآیند ممکن است بصری تر باشد. اکثر مشتریان گزینه ای برای کلیک راست روی شاخه قدیمی دارند و آن را با شاخه ای که روی آن کار می کنید به روز می کنند.
شعبه های راه دور فوروارد سریع
نکته ای که باید به آن توجه کنید این است که فوروارد سریع تنها مخزن محلی شما را به روز می کند. برای به روز رسانی ریموت باید به Github فشار دهید. اگر از یک سرویس گیرنده رابط کاربری گرافیکی استفاده می کنید، ممکن است برچسب مخزن راه دور را تا زمانی که فشار دهید قدیمی است، ببینید.
ارسال سریع شعبه تعهدی ایجاد نمی کند، اما همچنان باید خطوط لوله CI/CD مانند Github Actions را راه اندازی کند. اگر اینطور نیست، گزینه ای برای ایجاد یک commit ادغام همیشه وجود دارد:
git merge --no-ff
این همچنین میتواند در برخی موارد برای حفظ توپولوژی شاخه واضحتر مفید باشد، جایی که شاخههای ویژگی همیشه از شاخه اصلی جدا هستند و هنگام ترکیب شدن، یک commit ایجاد میکنند. بهطور پیشفرض، اگر هنگام ادغام در ویژگی، چیزی را در شاخه اصلی تغییر ندادهاید، Git بهجای ایجاد تعهد ادغام معمولی که ممکن است انتظارش را داشته باشید، شاخه اصلی را سریع به جلو میبرد. این --no-ff
پرچم از این رفتار جلوگیری می کند.
از طرف دیگر، اگر میخواهید سریع جلو بروید و در صورت نیاز به ادغام شکست بخورید، میتوانید از --ff-only
پرچم.
سایت محتوا مارکتینگ
برای دیدن مطالب آموزشی بیشتر در زمینه سخت افزار و نرم افزار اینجا کلیک کنید!