-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
چالش های کار گروهی بر روی یک مخزن گیت #27
Comments
در صورتی که میخواهیم از برنچی که دیگران نیز بر روی آن کار میکنند استفاده کنیم مقتضی است دستور زیر را اجرا کنیم تا به جای کل ریپوی خودمان تنها آن برنچ را به صورت سینک با فضای مخزن ریموت در آوریم
|
Resolve merge conflicts in command lineدر ادامه کار ممکن است با مواردی روبرو شوید که نیاز به تصحیح کانفلیکت های مرج دارد، به عنوان مثال وقتی یک لاین از کدِ یک branch در میان کار شما و دیگر مشارکت کنندگان به صورت همزمان تغییرات داشته.
|
مشاهده، کنترل و پیکره بندی ریپوزیتوری :
اگر پیام هایی که در زیر مشاهده میکنید در ریپوی شما وجود دارد، تنظیماتتان اشتباه است
تنظیمات به این صورت باید اطلاح شود
که این آدرس fork شما از مخزن اصلی را شامل می شود. و اینکه من در نظر گرفتم که شما این موضوع را که تغیییرات باید به صورت signed ارسال شوند وگرنه امکان مرج توسط مخزن به آنها داده نخواهد شد رعایت میکنید و به جای آدرس https از ssh استفاده میکنید. نحوه ویرایش مخزن فعلی به صورتی که همگام با تغییرات مخزن اصلی بر روی ریپوزیتوری شما به سادگی قابل بارگذاری باشد پس از تعویض origin به ریپوی خودتان ، کافیست این ریپو را با دستورات زیر پیکره بندی کنید:
از این پس سه فضای مختلف و سلسله مراتبی قرار گیری ریپوزیتوری ها هر یک به صورت مجزا باید توسط شما مدیریت شوند:
|
در نهایت برای حذف برنچهای اضافه که احتمالا در مسیر کار خود ایجاد کرده اید و همسان سازی کامل با upstream
|
در صورتی که به هر دلیلی مثلا عدم استفاده از .gitognor یا یک کامیت اشتباه، تاریجچۀ فایلی به اشتباه وارد مخزن شما شده است و حال نیاز دارید اطلاعات تغییر یافته خود را با پول ریکوئست به پروژه وارد نمایید ابتده با دستور زیر اقدام به حذف تاریخچه مربوط به فایل ترک شده از سابقه گیت نمایید
|
من متوجه نشدم این issue که شما زدین چه ربطی به این رپازیتوری داره! بهتر بود اگه میخواین تیم خودتون رو اموزش بدید یه رپازیتوری مخصوص اینکار ایجاد میکردین یا اینکه کلاس اموزشی میزاشتین براشون. و اینکه کسی که با گیت بلد نیست کار کنه چرا باید روی رپازیتوری ها به عنوان توسعه دهنده کار کنه؟ |
بخشی از هدف های این ریپو این بوده که استفاده عملی از گیت برای کسایی که
باهاش آشنایی دارند و با این حال به گیت مسلط نیستند هم فراهم بیاره. در ابتدای راه
کامیونیتی، تولید محتوای مرتبط با آشنا کردن دولوپر ها با گیت بر اساس یک سوال
گروهی کلید خورد که از شرکت کنندگان در شاخه هایی همچون یو آی، بک اند و ...
بودند دوستانی که گیت آشنایی نداشتند
.
از اونجایی که به حتم شما آشنایی خوبی با گیت دارید و امکان همچین اشتباهاتی
توی کار تیمیتون بسیار کم هست، ذهنیتتون نسبت به باقی برنامه نویس ها هم
همینطور هست، با این حال این ایشو به لحاظ یک مشکل عملی که برای همین ریپو پیش
اومد، نوشته شده. به هیچ وجه به قصد استفاده تیم خاصی ایجاد نشده، بلکه با
موافقت تیمم به عنوان یه مطلب گروهی به این عنوان به اشتراک گذاشتم.
ولی فکر میکنم باید به ویکی تبدیل شه.
چون این ریپو برای به اشتراک گذاشتن کد بیس نیست بلکه یک کانتنت قابل گسترش به
صورت دانشنامه ای برای تفاهم های چگونگی همکاری در پروژه هایی هست که بر روی
کامیونیتی مطرح میشه و همینطور چگونگی کار با گیت چیزی که مفاد نامه انگلیسی
به تنهایی براش کافی نیست و گیت به عنوان مجرای همکاری برنامه نویسهای این
کامیونیتی هست با این حال میتونه جزو استک بسیاری نباشه و از سوی دیگه گیت حتی
با بسیاری ملاحظات هم به خطای انسانی ممکن هست دچار مشکل بشه.
امیدوارم این موارد برای بتونن برای جلب نظر دوستان جهت مشارکت در تقویت این
ریپو وآموزش و رشد روحیه همکاری و نتیجتا پروژه های موفقی در فضای کامیونیتی
بشه.
|
وقتی از گیت در کار گروهی استفاده می شود، اصولا تمامی کالابریتور ها یک فورک از کد مخزن upstream بر روی فضای کاری خود ایجاد میکنند
git clone https://github.com/iran-react-community/docs.git
نکته ای که در ادامه حائز اهمیت است، اطمینان از سینک بودن همیشگی با ریپوزیتوری اصلی در هر مرحله کار بر روی برنچ هایی است که در اختیار دیگران نیز قرار دارد.
هر شخصی در یک اجتماع اُپن سورس مسئول عملیات و مراقبت های خویش برای آسیب نرسندن به محیط مشارکتیست
برای اطمینان ازاین موضوع که در صورت رعایت نشدن برنچینگ را کاملا با شکست مواجه میکند چرا که نسخه local از فورک شما از سابقه فعالیت های شما بر روی آن ساخته شده، و این در حالیست که برخی از این کامیت ها در ریفرنس های درختچه remote همان برنچ وجود ندارد. راهکار پیش رو را برای اطمینان از سینک بودن پیش ار هر بار کار بر روی مخازنی که به صورت گروهی مدیریت میشود پیشنهاد مینمایم:
با اجرای این کامند بلافاصله بعد از فورک ریپوزیتوری
git remote add upstream https://github.com/iran-react-community/docs.git
میتوانیم از عملکرد صحیح دستور زیر مطمئن شویم، چرا که اگر upstream به مخزن اصلی که ریپو را از آن فورک کردیم اشاره نکند، با اجرای دستور fetch ما تنها مخزن local خود را با fork خودمان سینک کرده ایم ولی نیت ما برای همکاری با پروژه های مشارکتی خدشه وارد نکردن به درخت سابقه برنچ هاست.
git fetch upstream
در نهایت اگر از صحت عملیات میخواهید مطمئن باشید دستور زیر را هم اجرا کنیم تا local با upstream یکسان شود
git rebase upstream/master
The text was updated successfully, but these errors were encountered: