Skip to content

Syncing a fork

Vijay Selvaraj edited this page Jun 17, 2020 · 1 revision

Clone your fork

$ git clone https://github.com/vijs/rdkservices.git
Cloning into 'rdkservices'...
remote: Enumerating objects: 30, done.
remote: Counting objects: 100% (30/30), done.
remote: Compressing objects: 100% (28/28), done.
remote: Total 1216 (delta 11), reused 7 (delta 2), pack-reused 1186
Receiving objects: 100% (1216/1216), 938.25 KiB | 5.30 MiB/s, done.
Resolving deltas: 100% (752/752), done.

List the current configured remote repository for your fork

$ git remote -v
origin  https://hostname/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://hostname/YOUR_USERNAME/YOUR_FORK.git (push)

Specify a new remote upstream repository that will be synced with the fork

$ git remote add upstream https://github.com/rdkcentral/rdkservices.git

Verify the new upstream repository you've specified for your fork

$ git remote -v
origin	https://github.com/vijs/rdkservices.git (fetch)
origin	https://github.com/vijs/rdkservices.git (push)
upstream	https://github.com/rdkcentral/rdkservices.git (fetch)
upstream	https://github.com/rdkcentral/rdkservices.git (push)

Fetch the branches and their respective commits from the upstream repository

$ git fetch upstream -v
POST git-upload-pack (327 bytes)
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), done.
From https://github.com/rdkcentral/rdkservices
 * [new branch]      master          -> upstream/master
 * [new branch]      release         -> upstream/release
 * [new branch]      topic/xione_mvp -> upstream/topic/xione_mvp

Check out your fork's local master branch.

$ git checkout master
Already on 'master'
Your branch is up to date with 'origin/masgter'.

$ git 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.

If your local branch didn't have any unique commits, Git will instead perform a "fast-forward"

$ git merge upstream/master
Updating 77a6bec..6700b2c
Fast-forward

$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

Push changes to your fork

$ git push
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/vijs/rdkservices.git
   77a6bec..6700b2c  master -> master

Reference

  1. https://help.github.com/en/enterprise/2.15/user/articles/syncing-a-fork