# How Do I Update or Sync a Forked Repository on Github?

To update or sync a forked repository on GitHub with its original upstream repository (the one you forked from), you need to perform a few steps. Here's how you can do it:

### Step 1: Add the Upstream Remote

First, you need to add the original upstream repository as a remote to your forked repository. You typically only need to do this once:

```bash
git remote add upstream <upstream-repository-url>
```

Replace `<upstream-repository-url>` with the URL of the original upstream repository. You can usually find this URL on the original repository's GitHub page.

### Step 2: Fetch Changes from Upstream

Fetch the changes from the upstream repository:

```bash
git fetch upstream
```

This command will fetch all branches and commits from the upstream repository.

### Step 3: Merge or Rebase Changes

Now, you can merge or rebase the changes from the upstream repository into your local branch. You have two options:

### Option 1: Merge Changes

```bash
git checkout master  # or the branch you want to update
git merge upstream/master
```

This command will merge the changes from the upstream repository's `master` branch into your local branch.

### Option 2: Rebase Changes (Recommended for Clean History)

```bash
git checkout master  # or the branch you want to update
git rebase upstream/master
```

This command will rebase your local changes on top of the changes from the upstream repository's `master` branch, resulting in a cleaner commit history.

### Step 4: Push Changes to Your Fork

Finally, push the merged or rebased changes to your forked repository on GitHub:

```bash
git push origin master  # or the branch you updated
```

This command will push the changes to your forked repository on GitHub, updating it with the changes from the upstream repository.

### Note:

- You may need to resolve any merge conflicts that occur during the merge or rebase process.
- Make sure you have permission to push changes to your forked repository on GitHub.
- It's a good practice to keep your forked repository updated with the changes from the upstream repository to stay in sync with the latest developments.