سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ امیر رحمانی
اگر نیاز باشد کدی در برنچ‌های قدیمی تغییر کند راهکار چگونه است؟
جامعه جاوا (وب و دسکتاپ) ایجاد شده در ۲۱ فروردین ۱۴۰۱

سلام استاد وقت بخیر

سوال 1:

استاد ما فرضا یک بخش از کدی رو تو برنچ به عنوان مثال a به اتمام میرسونیم و با برنچ مستر merge می‌کنیم و بعد بخش‌های دیگر رو تو برنچ‌های b,c,d,.. دیگه تکمیل می‌کنیم و با مستر merge می‌کنیم

حالا بعد نگاه می‌کنیم که کد برنچ a خوب نبوده و نیاز به تغییر داره ولی این کد تو بخش‌های دیگه تغییر کرده و اگه ما کدمون رو تغییر بدیم تو این برنچ بعد با مشکل روبرو می‌شیم. اینجا باید چیکار کنیم ؟

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

-----------------------------------------------------

سوال 2 :

اگر ما اسم متدی یا متغیری رو تغییر بدیم، توی کامیتمون باید اسم متد قبلی که به متد فعلی تغییر کرده ذکر بشه؟ یا بصورت کلی میشه نوشت اسم متد تغییر کرد ؟

سوال 3:

و سوال سومم اینه اگه طی فواصل زمانی کوتاه دائم کدمون بخواد تغییر کنه و بهترشه و بخوبی کار کنه هربار که تغییر می‌کنه باید کامیت و پوش بشه؟

ممنون، ببخشید که سوالامون زیاد شد

سلام امیر جان،

ممنون بخاطر سوالات خوب و فکر شدت.

برای سوال اول شما در اصطلاح به کانفلیکت میخورید که یک فرایند طبیعی هست. توی یک تیم باید طوری روی کد‌ها تغییر اعمال کنیم که احتمال داشتن کانفلیکت پایین بیاد. این یک مدیریت میخواد تا ازش جلوگیری بشه.

حالا اگر کانفلیکت اتفاق افتاد هم مشکلی نیست، میشه اون رو برطرف کرد و کدی که درست هست رو انتخاب کرد.

برای انجام این کار من به شخصه از kdiff3 در محیط Git Extension استفاده میکنم.

توی دوره در مورد کانفلیکت صحبت نکردیم چون نمی‌خواستیم زمان زیادی رو برای گیت صرف کنیم.


سوال دوم، بهترین کامنت، اونی هست که به شما بگه چه اتفاقی در اون افتاده. پس هر چه جامع‌تر باشه بهتره. مثلا refactor class Xxxx to improve readability.


سوال سوم، هر تغییر موفق باید برابر باشه با یک کامیت. یعنی اگر تغییر دادین و تست‌ها سبز بود باید کامیت کنید. دلیل این هست که بتونید برگردید به آخرین وضعیت سبز اگر به مشکلی خوردید. اگر نگران تعداد زیاد کامیت‌ها هستید بدونید که میتونید در آخر اون‌ها رو squash کنید تا توی merge اذیت نشید.


سوال دیگه ای بود در خدمت هستم

بهترین پاسخ
سپهر نامدار ۲۱ فروردین ۱۴۰۱، ۱۱:۲۶