For proper management of our git project we need to sync our fork with master git. It help us to avoid any merge conflict. Here we will learn about syncing of fork with original repo.
What is a fork?
Creating a “fork” is producing a personal copy of someone else’s project. Forks act as a sort of bridge between the original repository and your personal copy.
Follow Following steps to sync a fork with the original repo
Configuring a remote for a fork:
- Open Terminal/cmd or git bash
- Change the current working directory to your local project
- List the current configured remote repository for your fork.
Syntax: git remote -v
$ git remote -v > origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) > origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
- Specify a new remote upstream repository that will be synced with the fork.
Syntax: git remote add upstream <orignal_repo_path>
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
- Verify the new upstream repository you’ve specified for your fork.
$ git remote -v > origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) > origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push) > upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) > upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
Syncing a fork
- Fetch the branches and their respective commits from the upstream repository. This fetch will store in will be stored in a local branch upstream/master
Syntax: git fetch upstream
$ 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.
Syntax: git checkout master
$ 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.
Syntax: git merge upstream/master
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(-)
Syncing your fork only updates your local copy of the repository. To update your fork on GitHub, you must push your changes.Push your changes
Read more: Subversion equivalent commands in git