🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علی
مفهوم branching
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۰۱ دی ۱۳۹۹

با عرض سلام 

 

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

 

درمورد branch‌ها گفته میشه که مثلا اگه قراره دو نفر دو feature رو به صورت همزمان توسعه بدن بهتره دوتا شاخه بسازیم تا هر کدوم روی شاخه خودشون شروع به توسعه feature موردنظرشون کنند

 

من تو مخزن local خودم دارم فیچر ۱ رو توسعه میدم و نفر دوم هم تو مخزن local خودش داره فیچر ۲ رو توسعه میده با توجه به این که این دو مخزن جدا از هم هستن دیگه چه نیازه من بیام یه branch از شاخه اصلی جدا کنم و فیچرم رو روی شاخه فرعی توسعه بدم و وقتی توسعه فیچر تموم شد اونو دوباره با شاخه اصلی ادغام کنم؟

 

اگه کلا یدونه مخزن داشتیم اون موقع اینکار معنی میداد برای اینکه بی نظمی ایجاد نشه دو تا شاخه از شاخه اصلی جدا می‌کردیم تا هر کی رو شاخه خودش کار کنه ولی حالا که هر کی یه کپی از مخزن اصلی داره اینکار به چه دردی میخوره؟

 

من تو مخزن local خودم رو همون شاخه اصلی فیچرم رو توسعه میدم حالا هر اتفاقی هم بیوفته میتونم برگردم به شرایط قبل از توسعه فیچرم نفر دوم هم میتونه همین کارو بکنه و تا زمانی که  از دستور push استفاده نکنیم تغییری در مخزن اصلی ایجاد نمیشه

 

ممنون میشم اگه یه تعریف درستی از branch‌ها بدین

من تو مخزن local خودم دارم فیچر ۱ رو توسعه میدم و نفر دوم هم تو مخزن local خودش داره فیچر ۲ رو توسعه میده با توجه به این که این دو مخزن جدا از هم هستن دیگه چه نیازه من بیام یه branch از شاخه اصلی جدا کنم و فیچرم رو روی شاخه فرعی توسعه بدم و وقتی توسعه فیچر تموم شد اونو دوباره با شاخه اصلی ادغام کنم؟

اگر هر کدوم برا خودش داره پروژه را میبره جلو که  هر جور راحته(درست و غلطش به کنار)  شاید تشخیص بدید اصلا نیازی به سیستم ورژن کنترل نیست اما اگر هر دو نفر دارن رو یه پروژه با VCS کار میکنند  اون پروژه  یه شاخه اصلی داره که اگر هر  دو  رو شاخه  اصلی کار کنن بعد ممکنه   جدای از نظم و … ممکنه فایل‌های هم نام به وجود بیاد و تداخل ایجاد کنه که پیدا کردنش مشکله و سختی‌های خودش رو داره اما شما وقتی از vcs استفاده میکنی  و شاخه تون رو با شاخه اصلی ادغام میکنید بهتون میگه کجا  تداخل ایجاد شده و برطرفش میکنید

 مثلا همین انجمن سون لرن رو در نظر بگیرید سه نفر باید روش کار کنند   (الف)  باید ویژگی ویرایشگر رو بسازه (ب) باید ویژگی ستون سوال‌های مرتبط (ج) هم باید ویژگی ایجاد موضع جدید رو اضافه کنه 

اگر شما از git استفاده نمی‌کردید هر کدوم  کار خودش رو انجام میداد بعد از تمام شدن همه وظیفه‌ها ،حالا باید همه رو مجتمع کرد که این صفحه ساخته بشه.  آیا چنین چیزی ممکن بود؟ قطعا ممکن بود اما پدر ادم در میومد و کلی  بدبختی  باید میکشیدیم  تا به production برسه تاز این پروژه ساده  بود اگر پروژه بزرگتر بود تقریبا کل تیم در یه حلقه شبه while  گیر می‌کردیم و...

اما شما وقتی هر ویژگی  رو در یک شاخه جدید توسعه بدید بعد از تمام شدن خیلی راحت با شاخه اصلی ادغام میکنید 

اگر تداخلی ایجاد  نشد و  ومدیر فنی هم قبولش کرد با کمترین دردسر به شاخه اصلی اضافه  میشه

 

ممنون میشم اگه یه تعریف درستی از branch‌ها بدین

برداشت شخصیم:در واقع  branch ایجاد شده تا توسعه دهنده‌ها کمتر به جون هم بیوفتن و هر کدوم یه شاخه  از پروژه اصلی رو در اختیار بگیرند و با به حداقل رسوندن چالش‌ها ببرن جلو

 

مهرداد ۱۱ دی ۱۳۹۹، ۱۲:۴۴