آموزش جریان کاری در گیت برای مشارکت در پروژه های متن باز

سلام به همگی

خب ، به مناسبت هکتوبرفست امروز میخوایم که جریان کاری استانداردی رو برای مشارکت کردن در توسعه ی پروژه های اُپن سورس باهم یاد بگیریم.

بعد از اینکه ریپازیتوری مورد نظرمون رو پیدا کردیم ، کارمون رو با 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 کردن کامیت ها هستیم.

  1. مطمئن میشیم همه ی تغییراتی که روی feature_branch داده بودیم رو کامیت کردیم.
  2. برنچ 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



جریان کاری دوم :

زمانی که پول ریکوئست دیگر توسعه دهندگان پروژه ، تایید و مِرج شده و ما قصد داریم که تغییرات جدید رو داشته باشیم :

  1. خب ، فرض میکنیم که داریم روی feature_branch خودمون کار میکنیم .
  2. مطمئن میشیم که همه ی تغییرات رو کامیت کرده باشیم.
  3. برنچ 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 &quot new changes&quot
git  push origin  feature_branch


و تمام !

امیدوارم مفید بوده باشه براتون.

موفق باشید :)