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و تمام !
امیدوارم مفید بوده باشه براتون.
موفق باشید :)
مطلبی دیگر از این انتشارات
سلام بر لینوکس و دوستانش
مطلبی دیگر از این انتشارات
جنگو چیست؟ مزایا و معایب استفاده از Django
مطلبی دیگر از این انتشارات
رست VS گرافکیوال