مهندس نرم افزار. با کمی فعالیت در pullrequest.ir
هماهنگ سازی مخزن Fork شده با مخزن اصلی
هر زمان که بخواین یه مخزن رو توی گیتهاب برای خودتون ذخیره کنین یا بخواین بهش یه Contribution داشته باشید، باید در مرحله اول اون مخزن رو Fork کنین. ولی اگر صاحب مخزن اصلی اونو آپدیت کنه چی؟ چطور باید مخزن Fork شده تون رو باهاش هماهنگ و آپدیت نگه دارین؟
(مخزن = Repository)
نحوه هماهنگ سازی دو مخزن ها باهم
برای آپدیت و هماهنگ نگه داشتن مخزن لوکال تون با مخزن اصلی باید دو مرحله رو پشت سر بزارین:
مرحله اول: اضافه کردن ریموت Upstream
تو این مرحله یه ریموت به مخزن اصلی ست میکنیم. خط فرمان رو باز کنین و برید توی فولدر مخزنی که فورکش کردین: حالا دستور git remote -v
رو وارد کنین تا لیست ریموت های ست شده روی فورکتون مشخص بشه:
$ git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
میبینین که یه ریموت به فورکتون توی مخزن ست شده. حالا باید یه ریموت دیگه به مخزن اصلی اولیه ست کنیم:
git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
به این ریموت Upstream میگن. برای اینکه مطمئن بشین ریموت Upstream به مخزنتون اضافه شده دوباره دستور git remote -v
رو توی خط فرمان اجرا کنین:
$ git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
مرحله دوم: انجام آپدیت و هماهنگ سازی دو مخزن
توی همون خط فرمان، این دستور رو وارد کنین تا آخرین تغییرات مخزن اصلی به مخزن لوکالتون اضافه بشه:
$ git fetch upstream
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
* [new branch] master -> upstream/master
در این لحظه آخرین تغییرات رو وارد سیستمتون کردین. برای اضافه شدنش به مخزن این دستورها رو اجرا کنین:
$ git checkout master
Switched to branch 'master'
حالا برنچ فعلی رو مرج کنین با Upstream
$ git merge upstream/master
Updating a422352..5fdff0f
Fast-forward
README | 9 -------
README.md | 7 ++++++
2 files changed, 7 insertions(+), 9 deletions(-)
delete mode 100644 README
create mode 100644 README.md
توی این حالت اگر تغییری وجود نداشته باشه، گیت fast-forward اجرا میکنه:
$ git merge upstream/master
Updating 34e91da..16c56ad
Fast-forward
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
خوشحال میشم ایده هاتون رو در مورد این مطلب توی کامنت ها ببینم تا فیبدک هامون رو به هم منتقل کنیم.
اگر از خوندن این مطلب لذت بردین میتونین اونو با دیگران به اشتراک بزارید. همینطور میتونین از سایر مطالب بلاگ هم استفاده کنین و یا اگر دوس داشته باشید، کنارمون بنویسید. برای راهنمای انتشار مطلب در پول ریکوئست میتونین با ما درتماس باشید.
مطلبی دیگر از این انتشارات
گیت Rebase به زبان ساده
مطلبی دیگر از این انتشارات
آشنایی با Symfony با ساختن یه وبلاگ به صورت پروژه ای
مطلبی دیگر از این انتشارات
پنهان کردن هدرهای پیش فرض مرورگر در پرینت صفحه وب