Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to automatically align/sync a forked Github origin/master branch to upstream/master?

Is there a way to automatically sync my forked Github repository's remote master branch (origin/master) to an original Github repository's master branch? (upstream/master)

I ask because I would like my forked remote origin/master branch on Github to always stay up-to-date so that I could save time by not needing to continually pull / rebase & push upstream repository changes into my forked repo's master branch.

like image 537
Kelsey Hannan Avatar asked Feb 20 '15 23:02

Kelsey Hannan


3 Answers

It is very easy to sync forked repository but question is how ?

In this example i am using WorldMapGenerator Repository

Go to your forked repository, you can see setting button click on it.

enter image description here

After clicking on setting button you can see Webhooks & services option in left menu click on it.

enter image description here

Then you can see Add Webhook Button on right side just click on it.

enter image description here

After clicking Add Webhook Button, details page will get open, so in detail page yo can see payload url. Enter http://backstroke.us url in it.

enter image description here

Now If any commit goes in main repository, then pull request will come in your forked repository.

That's it enjoy :)

For more details https://github.com/1egoman/backstroke

like image 93
Keval Bhatt Avatar answered Oct 27 '22 03:10

Keval Bhatt


GitHub does not have such an automatic sync feature. However, it is trivial to add as a cron job on a server so that you don't have to do it manually. For instance:

cd /srv/mirrorrepo ; git fetch upstream master ; git push origin master
like image 40
Loic Dachary Avatar answered Oct 27 '22 04:10

Loic Dachary


Updating the @Keval Bhatt answer:

There are two versions of Backstroke:

Backstroke Classic, the original version. It was made originally by me about a year ago and is deprecated, however others have posted about it online. In order to set this up, the user adds https://backstroke.us as a webhook in their repository manually.

Backstroke, the newer version of Backstroke. This has a dashboard the user can use to setup Backstroke, no manually-adding of webhooks required. The url https://backstroke.us/_5a4ds65f46464s65d4654 is the webhook that gets added behind the scenes to your repository, but you never have to call it yourself unless you want to tie Backstroke into some custom system. If you just want to sync changes from one repo to another, then you don't have to think about the webhook since it's managed by the system.

https://github.com/1egoman/backstroke/issues/60#issuecomment-318923158

Now you only need to access https://backstroke.us, login and add the links between the repositories, and the pull requests are created automatically:

  1. enter image description here
  2. enter image description here

Behind the scenes, https://backstroke.us will be setting up the GitHub webhooks to automatically pull updates with the https://backstroke.us website interface.

like image 3
user Avatar answered Oct 27 '22 03:10

user