Frontend Software Engineer
آموزش جریان کاری در گیت برای مشارکت در پروژه های متن باز
سلام به همگی
خب ، به مناسبت هکتوبرفست امروز میخوایم که جریان کاری استانداردی رو برای مشارکت کردن در توسعه ی پروژه های اُپن سورس باهم یاد بگیریم.
بعد از اینکه ریپازیتوری مورد نظرمون رو پیدا کردیم ، کارمون رو با fork کردن اون شروع می کنیم و بعد روی سیستم خودمون clone می کنیم :
git clone git@github.com:your_username/tensorflow.git
تو مرحله ی بعدی آدرس ریپازیتوری upstream (آدرس گیتهاب پروژه ی اصلی که از اون fork کردیم) رو اضافه میکنیم :
git remote add upstream git@github.com:tensorflow/tensorflow.git
در نهایت یک برنچ جدید ایجاد میکنیم تا بتونیم کارهامون رو داخلش انجام بدیم :
git checkout -b feature_branch
حالا با خیال راحت میتونیم تغییراتی که میخوایم رو داخل پروژه ایجاد کنیم.
جریان کاری اول :
زمانی که آماده ی push کردن کامیت ها هستیم.
- مطمئن میشیم همه ی تغییراتی که روی feature_branch داده بودیم رو کامیت کردیم.
- برنچ feature_branch رو ریبِیس (Rebase) میکنیم :
با این کار تمامی تغییرات جدید ایجاد شده روی پروژه ی اصلی ، به برنچ مورد نظر ما اضافه میشه:
git pull --rebase upstream master
۳. روی برنچ master سوییچ می کنیم :
git checkout master
۴. برنچ master خودمون رو هم ریبیس (Rebase) می کنیم :
git pull --rebase upstream master
۵. اگر تغیراتی وجود داشته باشه ، اونها رو به ریپازیتوری خودمون روی گیتهاب منتقل (push) می کنیم :
git push origin master
۶. برمیگردیم روی feature_branch :
git checkout feature_branch
۷. تغییراتی که داخل feature_branch دادیم رو به ریپازیتوری گیتهاب خودمون منتقل میکنیم :
git push origin feature_branch
۸. پول ریکوئست (pull request) رو ارسال میکنیم.
برای آپدیت کردن ریپازیتوری گیتهاب خودمون بعد از مِرج (merge) شدن پول ریکوئست ، مراحل زیر رو طی میکنیم :
۹. بعد از اینکه پول ریکوئست مورد نظر تایید شد ، برای اینکه تاریخچه ی گیتهاب ما تمیز و مرتب بشه ، feature_branch رو از ریپازیتوری گیتهاب حذف میکنیم .
۱۰. توی ترمینال ، برمیگردیم روی برنچ master :
git checkout master
۱۱. برنچ master رو rebase می کنیم :
git pull --rebase upstream master
۱۲. تغییرات مورد نظر رو به ریپازیتوری گیتهاب منتقل میکنیم :
git push origin master
۱۳. و در نهایت feature_branch رو از سیستم خودمون حذف میکنیم :
git branch -d feature_branch
جریان کاری دوم :
زمانی که پول ریکوئست دیگر توسعه دهندگان پروژه ، تایید و مِرج شده و ما قصد داریم که تغییرات جدید رو داشته باشیم :
- خب ، فرض میکنیم که داریم روی feature_branch خودمون کار میکنیم .
- مطمئن میشیم که همه ی تغییرات رو کامیت کرده باشیم.
- برنچ feature_branch رو ریبِیس میکنیم :
git pull --rebase upstream master
۴. به برنچ master سوییچ میکنیم :
git checkout master
۵. برنچ master رو هم ریبِیس میکنیم :
git pull --rebase upstream master
۶. تغییرات مورد نظر رو به ریپازیتوری گیتهاب منتقل (push) میکنیم :
git push origin master
۷. در نهایت برمیگردیم سراغ برنچ feature_branch و به توسعه دادن ادامه میدیم :
git checkout feature_branch
نکته : اگر قبلا پول ریکوئستی ارسال کرده باشیم و هنوز تایید نشده بوده باشه و قصد داشته باشیم تغییراتی رو به همون پول رکوئست که در وضعیت باز (open) قرار داره بفرستیم ، کافیه تغییرات جدید رو کامیت کنیم و تغییرات جدید برنچ (feature_branch) رو به گیتهاب منتقل کنیم :
git commit -m " new changes"
git push origin feature_branch
و تمام !
امیدوارم مفید بوده باشه براتون.
موفق باشید :)
مطلبی دیگر از این انتشارات
چرا برنامه نویس ها و شرکت ها تمایلی به کار اشتراکی و درصدی ندارند؟
مطلبی دیگر از این انتشارات
بررسی اجمالی Swagger و کاربرد آن در ASP.NET Core Webapi
مطلبی دیگر از این انتشارات
API چیست؟