فرهاد اشتری
5 سال پیش توسط فرهاد اشتری مطرح شد
1 پاسخ

کار روی یک پروژه به صورت تیمی از راه دور با گیت

با سلام
یه سوال همیشه ذهن من رو به خودش مشغول کرده.
چطور امکان داره که چند نفر از اعضای یک تیم برنامه نویسی روی یک پروژه به صورت همزمان کار کنند در حالی که هر کدام در یک جای جداگونه هستنتد. مثلا پروزه هایی که اعضای تیم به صورت دور کاری فعالیت می کنند و دارن همزمان روی پروژه کار می کنند.
البته من می دونم که با استفاده از گیت میشه روی پروژه های تیمی کار کرد.
اما مشکل اینجاست که اگه قرار باشه هر کسی تغییری در سورس کد ایجاد کنه و اون رو در ریپوسیتوری push کنه اون موقع هر کدوم از اعضای تیم وقتی می خوان روی سورس کد کار کنن باید قبلش دستور git pull رو اجرا کنند که این خودش باعث به وجود اومدن یه سری مشکلات و conflict ها میشه.
در کل از دوستان کسی در این زمینه اطلاعاتی داره؟
ممنون میشم پاسخ بدید @hesammousavi


ثبت پرسش جدید
سید محمد حسین موسوی
تخصص : FullStack Developer
@SeyedMH.Mosavi 5 سال پیش آپدیت شد
2

سلام
اول اینکه وقتی کار شما اصولی باشه نباید این اتفاق بیافته که چند نفر روی یک تکه کد کار کنند! و هر کسی مسئول انجام یک بخشه. مثلا یکی کدهای فرانت رو می نویسه و یکی کدهای یه بخش دیگه. حتی اگر چنتا برنامه نویس بکند هم باشه هرکی مسئول یه کاریه. مثلا وقتی قراره کار انجام بشه یکی موظف مثلا کدهای بخش ثبت نام رو درست کنه و یکی دیگه هم قراره کدهای مربوط به سبد خرید. پس عملا قرار نیست که کانفلیکت رخ بده. وقتی کانفلیکت رخ می ده که ده نفر دارن کدهای ثبت نام رو می نویسن یا تغییر می دن! این یعنی کلا کار تیمی وجود نداره که هر کی هر موقع هر جایی که دوست داره رو تغییر می ده!
اما با فرض اینکه کانفلیکت هم رخ بده. مشکلی نداره شما خیلی راحت می تونی برطرفش کنی. مثلا فرض کن دوست شما یه کدی نوشته برای ثبت نام که یک ماه پیش بوده و شما هم تغییرات اون رو اصلا تا حالا نگرفتی و بعد از یک ماه می یان به شما می گن که کلا کد ثبت نامش مشکل داره و حالا شما بیا دوباره بنویس. اگر شما قبلش fetch نکنی تغییرات رو و شروع کنی کد خودت رو بنویسی موقع push کردن اتفاقی که می افته اینه که دوتا کد ثبت نام روی سرور وجود داره یکی برای دوستت که قدیمیه و یکی هم برای شما پس در نتیجه روی سرور کانفلیت رخ می ده. یا حالا برعکس. شما قبل از اینکه پوش کنی یهویی یادت می افته بزار یک fetch و pull هم بزنم! و وقتی اینکارو می کنی روی سیستم خودت کانفلیکت رخ می ده. اینجا خیلی راحت دوتا تکه کد رو نگاه می کنی و قسمتی که می خوای رو حذف و قسمتی رو که می خوای نگه می داری و تمام!

زمانی که کانفلیکت رخ می ده خودش داخل کدت علامت گذاری می کنی و خیلی راحت می ری ادیتورت رو باز می کنی و می گردی و بخش مورد نظر رو اصلاح می کنی و خلاص.

این دوتا مورد رو رعایت کنید تا این مشکلات به حداقل برسه:
اول اینکه کارها باید تقسیم بشه و یک تکه کد یا یه بخش از کد نباید همزمان توسط دو نفر تغییر پیدا کنه.
دوم اینکه هر کسی که می خواد کدی بنویسه حتی یه خط یا گذاشتن یه نقطه! قبل از شروع کدنویسی اش موظف باشه همیشه اخرین تغییرات سرور رو دریافت کنه. همون دستور fetch و pull و ...


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام