Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I keep my fork in sync without adding a separate remote?

Tags:

git

github

Let's assume there is a repository someone/foobar on GitHub, which I forked to me/foobar.

How do I pull new commits from the parent repository directly to my fork, without having to add a separate remote and remember to pull regularly from there ?

The goal is to:

  • git pull to fetch from the parent repository
  • git push to send everything to my fork
like image 231
1ace Avatar asked Jan 08 '14 00:01

1ace


People also ask

How do you keep forks in sync?

Go to your fork, click on Fetch upstream and then click on Fetch and merge to directly sync your fork with its parent repo. You may also click on the Compare button to compare the changes before merging.


2 Answers

Open the forked Git repository me/foobar.

Click on Compare:

Here is a sample image of the page

You will get the notification:

There isn't anything to compare.
someone:master is up to date with all commits from me:master. Try switching the base for your comparison.

Click on switching the base on this page:

Here is an example on the page

Then you get to see all the commits made to someone/foobar after the day you forked it.

Click on Create pull request:

Here is a sample page

Give the pull request a title and maybe a description and click Create pull request.

On the next page, scroll to the bottom of the page and click Merge pull request and Confirm merge.

Your Git repository me/foobar will be updated.

Edit: rebase options are shown here:

enter image description here

like image 151
Olufemi Israel Olanipekun Avatar answered Sep 21 '22 01:09

Olufemi Israel Olanipekun


git remote set-url origin [email protected]:someone/foobar git remote set-url origin --push [email protected]:me/foobar 

There is one caveat though:
This is perfect if you are the only one making changes to your fork.
However, if it is shared with other people, you may have to pull from your fork, in which case a separate remote is the only solution.

Edit:
Actually, you can git pull [email protected]:me/foobar, which removes the caveat.
The choice is yours as to which is easier to remember.

like image 42
1ace Avatar answered Sep 21 '22 01:09

1ace