شاید برای شما هم پیش آمده باشد که یک مخزن بر روی git را fork کرده باشید و تغییرات خود را روی آن اعمال کرده باشید و سپس به پروژه ی اصلی Pull request داده باشید.حالا فرض کنید پس از مدتی روی مخزن اصلی تغییراتی صورت می گیرد و در واقع مخزن fork شده ی شما از مخزن اصلی پروژه عقب تر می ماند و باز قصد دارید تا Pull request انجام دهید.
از آنجایی که مخزن fork شده شما عقب تر از مخزن اصلی پروژه می باشد، اول باید مخزن fork شده ی خود را با مخزن اصلی پروژه همگام سازی (sync) کنید.برای اینکار ابتدا پس از clone یا pull کردن پروژه ی fork شده که بر روی حساب github یا gitlab می باشد، وارد پوشه ی پروژه شوید.
اکنون برای بررسی مخزن های راه دور ( remote repository ) کافیست تا دستور پایین را اجرا کنید :
$ git remote -v
اکنون برای اضافه کردن یک remote upstream repository که مخزن fork شده قرار است با آن همگام سازی ( sync ) شود این دستور را اجرا کنید :
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
سپس برای بررسی upstream repository که برای fork خود تعریف کردید می توانید از دستور پایین استفاده کنید :
$ git remote -v
یک نمونه از کارهای گفته شده را در تصویر پایین مشاهده می کنید :
اکنون برای دریافت تغییرات از مخزن upstream که تعریف کردیم باید دستور پایین را اجرا کرد :
$ git fetch upstream
اکنون برای Check out کردن شاخه ی master از مخزن محلی fork شده ی خود، دستور پایین را اجرا کنید :
$ git checkout master
اکنون برای Merge کردن شاخه ی master از مخزن upstream با شاخه ی محلی master ، دستور پایین را اجرا کنید که باعث می شود شاخه ی master از مخزن محلی fork شده ی خود با upstream repository بدون از دست دادن تغییرات محلی خود همگام سازی ( sync ) شود :
$ git merge upstream/master
امیدوارم تا از این مطلب استفاده لازم را برده باشید.