Java Backend Software Engineer
آموزش جریان کاری در گیت برای مشارکت در پروژه های متن باز
![](https://files.virgool.io/upload/users/14276/posts/twmvfuwzzono/jwluohe2trpt.png)
سلام به همگی
خب ، به مناسبت هکتوبرفست امروز میخوایم که جریان کاری استانداردی رو برای مشارکت کردن در توسعه ی پروژه های اُپن سورس باهم یاد بگیریم.
بعد از اینکه ریپازیتوری مورد نظرمون رو پیدا کردیم ، کارمون رو با 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
و تمام !
امیدوارم مفید بوده باشه براتون.
موفق باشید :)
مطلبی دیگر از این انتشارات
داستان های یک فاندر استارت اپ قسمت اول(تیم چی میگه!)
مطلبی دیگر از این انتشارات
چگونه یک خروجی استاندارد از api داشته باشیم
مطلبی دیگر از این انتشارات
چند مثال کاربردی بلاکچین از حوزه داده تا انرژی پاک