Skip to content

Instantly share code, notes, and snippets.

@CristinaSolana
Created February 22, 2012 14:56
Show Gist options
  • Save CristinaSolana/1885435 to your computer and use it in GitHub Desktop.
Save CristinaSolana/1885435 to your computer and use it in GitHub Desktop.
Keeping a fork up to date

1. Clone your fork:

git clone [email protected]:YOUR-USERNAME/YOUR-FORKED-REPO.git

2. Add remote from original repository in your forked repository:

cd into/cloned/fork-repo
git remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git
git fetch upstream

3. Updating your fork from original repo to keep up with their changes:

git pull upstream master
@jef
Copy link

jef commented Apr 8, 2024

I find it funny that years after years I keep coming back to this gist.

Based on this awesome gist, I made a little bash function for myself and use it on a few machines so I don't have to remember 😅

@pa-0
Copy link

pa-0 commented Jun 2, 2024

Just FYI, here's a method for anyone who wants to sync their GitHub forks with upstream without having to create a local clone:

The official GitHub CLI now supports syncing forks remotely with this simple command... (From GitHub's official docs:) "To update the remote fork from its parent, use the gh repo sync -b BRANCH-NAME subcommand and supply your fork and branch name as arguments.

gh repo sync owner/cli-fork -b BRANCH-NAME

If the changes from the upstream repository cause conflict then the GitHub CLI can't sync. You can set the --force flag to overwrite the destination branch."

Note

It is also possible to simplify the command by only supplying your fork (in the username/repo name syntax), like so:

gh repo sync OWNER/REPO

GitHub CLI will attempt to match your default/main/master branch with that of the parent and sync the two -- assuming there are no merge conflicts. Otherwise, it will notify of such.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment