Java Backend 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و تمام !
امیدوارم مفید بوده باشه براتون.
موفق باشید :)
مطلبی دیگر از این انتشارات
چه میزان از REST API می دونم؟
مطلبی دیگر از این انتشارات
ساخت API با استفاده از gRPC در Node js
مطلبی دیگر از این انتشارات
رست VS گرافکیوال