[ad_1]
There are three ways one can do that: from the web UI (Option 1), from the GitHub CLI (Option 2), or from the command line (Option 3).
Option 1 – Web UI
On GitHub, navigate to the main page of the forked repository that you want to sync with the upstream repository.
Select the Fetch upstream drop-down.
- Review the details about the commits from the upstream repository, then click Fetch and merge.
Option 2 – GitHub CLI
To update the remote fork from its parent, use the gh repo sync
subcommand and supply your fork name as argument.
$ gh repo sync owner/cli-fork
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.
Option 3 – Command Line
Before syncing one’s fork with an upstream repository, one must configure a remote that points to the upstream repository in Git.
1 Open Git Bash.
2 Change the current working directory to your local project.
3 Fetch the branches and their respective commits from the upstream repository. Commits to BRANCHNAME will be stored in the local branch upstream/BRANCHNAME.
$ 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] main -> upstream/main
4 Check out your fork’s local default branch – in this case, we use main.
$ git checkout main
> Switched to branch 'main'
5 Merge the changes from the upstream default branch – in this case, upstream/main – into your local default branch. This brings your fork’s default branch into sync with the upstream repository, without losing your local changes.
$ git merge upstream/main
> 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 one’s local branch didn’t have any unique commits, Git will instead perform a “fast-forward”:
$ git merge upstream/main
> Updating 34e91da..16c56ad
> Fast-forward
> README.md | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
Note: Syncing one’s fork only updates one’s local copy of the repo.
To update one’s fork on GitHub.com, one must push ones changes.
Source: GitHub Docs – Syncing a fork
[ad_2]