Skip to content

Instantly share code, notes, and snippets.

@android10
Last active November 29, 2020 00:50
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save android10/00f1d2b3545c0e1a0967a70b33b42410 to your computer and use it in GitHub Desktop.
Save android10/00f1d2b3545c0e1a0967a70b33b42410 to your computer and use it in GitHub Desktop.
Keep a FORKED repository synced with UPSTREAM on Github

Configure a remote that points to the upstream repository in Git.

  • List the current configured remote repository for your fork.
git remote -v
origin  git@github.com:YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  git@github.com:YOUR_USERNAME/YOUR_FORK.git (push)
  • Specify a new remote upstream repository that will be synced with the fork.
git remote add upstream git@github.com:ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
  • Verify the new upstream repository you've specified for your fork.
git remote -v
origin    git@github.com:YOUR_USERNAME/YOUR_FORK.git (fetch)
origin    git@github.com:YOUR_USERNAME/YOUR_FORK.git (push)
upstream  git@github.com:ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream  git@github.com:ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

Sync your forked repository. -----------
  • Change the current working directory to your local project and fetch the branches and their respective commits from the upstream repository. Commits to master will be stored in a local branch, upstream/master.
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
  • Check out your fork's local master branch.
git checkout master
Switched to branch 'master'
  • Merge the changes from upstream/master into your local master branch. This brings your fork's master branch into sync with the upstream repository, without losing your local changes.
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
  • If your local branch didn't have any unique commits, Git will instead perform a "fast-forward":
git merge upstream/master
Updating 34e91da..16c56ad
Fast-forward
 README.md                 |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
  • Push your changes to your master branch.
git push origin master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment