برنامه نویسی

چگونه تضادهای ادغام را در GitHub حل کنیم

در اینجا شما فردی هستید که به تازگی حرفه برنامه نویسی خود را شروع کرده اید و در نهایت این شانس را دارید که روی یک پروژه مشترک کار کنید. شما با خوشحالی و افتخار اولین شماره ای را که روی آن کار کردید ادغام خواهید کرد. اما او ظاهر می شود. بله، تضاد وحشتناک ادغام!

اولین باری که با این (و دومی و همچنین سومی و شاید دهمی) مواجه شدم اعتراف می کنم که هول کردم.

امروز من می دانم چگونه این درگیری ها را حل کنم (تقریبا همیشه) و آمدم تا راه هایی را برای این کار به شما آموزش دهم.

توجه: نکات زیر فقط برای تضادهای ادغام است، برای درگیری در زندگی شخصی خود، لطفا با یک روانشناس حرفه ای مشورت کنید.

وقتی درگیری اتفاق می افتد …

شعبه دارای تعارضاتی است که باید حل شود

تنفس عمیق!

می دانم، وقتی برای اولین بار ظاهر می شود، این احساس را به ما می دهد که کار اشتباهی انجام داده ایم، درست است؟

و این باعث می‌شود که از انجام یک کار احمقانه و پاک کردن کد دیگران، اما نفس کشیدن، وحشت داشته باشید. اینجا حل می کنیم

چی شد؟

قبل از حل تعارض، ایده خوبی است که سعی کنید علت وقوع تعارض را درک کنید.

نه، تو کار اشتباهی نکردی (فکر کنم).

سیستم‌های کنترل نسخه مانند Git ابزارهای فوق‌العاده‌ای هستند که به شما کمک می‌کنند بدانید چه اتفاقی برای کد شما افتاده است، تغییراتی که ایجاد شده‌اند، چه کسی چه کاری انجام داده است.

اما این جادو نیست، و گاهی اوقات او به کمک کمی نیاز دارد.

به طور کلی، تداخل ادغام زمانی اتفاق می‌افتد که دو یا چند نفر تغییراتی ایجاد کنند که git را گیج می‌کند، و نمی‌داند کدام یک از 2 گزینه را اعمال کند، مانند زمانی که شخصی یک فایل یا یک خط را حذف می‌کند، اما شخص دیگری که آن را ندارد. کد به روز شده هنوز وجود دارد و فایل یا خط حذف شده را ویرایش می کند.

در مثالی که من استفاده می کنم، مشکل این است که دو نفر (من و alter ego من) تغییرات متفاوتی در یک خط در فایل ایجاد کرده اند.

بیایید به git کمک کنیم!

آنچه باعث تضاد ادغام می شود این است که git مانند مثال هایی که در بالا ذکر کردم گیج می شود و ماموریت ما در اینجا کمک به git است!

امروز قصد دارم نحوه انجام این کار را در Github توضیح دهم، اما حل تداخل در VS Code بسیار شبیه است.

در Github، هنگامی که درگیری اتفاق می افتد، ما آن را در اینجا می بینیم:

تعارض ها باید حل شود

بیایید با کلیک کردن روی دکمه در گوشه سمت راست شروع کنیم: تضادها را حل کنید.

درک تعارض

این ما را به فایل متناقض خود می برد، بیایید آن را مطالعه کنیم:

درگیری ها

Github زیبا است که با رنگ قرمز به ما نشان می دهد که درگیری کجاست. او به ما می گوید که از کجا شروع می کند و کجا به پایان می رسد. کد متضاد بعد از <<<<<<<< اصلی شروع می شود و قبل از <<<<<<<<<<< اصلی پایان می یابد.

همانطور که اشاره کردم دلیل درگیری در اینجا این است که دو نفر در یک خط تغییرات متفاوتی ایجاد کردند.

در این حالت، تغییر برای شخص 1 در خط 8، بالای ======= و تغییر برای شخص 2 در خط 10، زیر ======= است.

حل تعارض

ابتدا باید تصمیم بگیریم که کدام یک از دو گزینه صحیح است. در این صورت من می خواهم هر دو تغییر حفظ شود، هر دو درست است، تنها مشکل این است که آنها در یک خط هستند.

برای حل این تضاد، کد بین <<<<<<< اصلی را تغییر دادیم و آن را همانطور که انتظار داشتیم رها کردیم و ======= را حذف کردیم.

رفع تعارضات

بررسی می کنیم که آیا درست است و اگر درست است، هر دو <<<<<<< اصلی را حذف می کنیم

روی گوشه سمت راست بالا کلیک کنید

حالا در گوشه سمت راست بالا، روی علامت گذاری به عنوان حل شده کلیک کنید و ادغام را انجام دهید.

Github به شما اطلاع می دهد که این commit به main می رود، آیا مطمئن هستید که مشکلی ندارد؟

من میفهمم

من متوجه شدم، شما می توانید Github اصلی را به روز کنید!

و خوب، ما می توانیم درخواست کشش خود را انجام دهیم! تبریک می گویم!

ما درگیری نداریم

نتیجه

بنابراین، بیایید آن تضاد ادغامی را که یک هفته است وجود دارد، اما شما وانمود می کنید که وجود ندارد، حل کنیم؟ هاها

مثالی که زدم مربوط به یک درگیری ساده تر بود، اما مبنایی برای حل تعارضات بزرگتر است، بنابراین امیدوارم کمک کند!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا