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