docbrown/docs/getting-started/syncing.md
Andy Zhao 955bdcb2bc
Update docs with Forem instead of dev.to (#9316)
* Rename all GitHub links from thepracticaldev/dev.to to forem/forem

* Use new site name

* Rename to Forem

* Rename more dev.to to forem

* Remove unnecessary redirects

* Rename DEV to Forem

* Use Forem instead of DEV for branding

* Use Forem instead of DEV for licensing

* Use seedling instead of DEV logo
2020-07-15 13:29:11 -04:00

89 lines
1.9 KiB
Markdown

---
title: Keeping Your Fork In Sync
---
# Keeping your fork in sync
Now that you have a fork of Forem's source code, there is work you will need to
do to keep it updated.
## Setup your upstream
Inside your Forem directory, add a remote to the official Forem repo:
```shell
git remote add upstream https://github.com/forem/forem.git
```
## Rebasing from upstream
Do this prior to creating each branch for a PR:
Make sure you are on the master branch:
```shell
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
```
If you aren't on `master`, finish your work and checkout the `master` branch:
```shell
git checkout master
```
Do a pull with rebase against `upstream`:
```shell
git pull --rebase upstream master
```
This will pull down all of the changes to the official `master` branch, without
making an additional commit in your local repo.
(Optional) Force push your updated `master` branch to your GitHub fork
```shell
git push origin master --force
```
This will overwrite the `master` branch of your fork.
## Keeping your branch up to date
Sometimes, your forked branch may get out of date. To get it up to date it,
carry out the following steps:
Rebase from upstream once again:
```shell
git checkout master
git pull --rebase upstream master
```
Checkout your feature branch locally and merge master back into your branch:
```shell
git checkout <feature-branch-name>
git merge master
```
Merge any conflicts in editor if necessary:
```shell
git commit -m "Fix merge conflicts"
```
Push the changes back to your origin feature branch:
```shell
git push origin <feature-branch-name>
```
After you've fetched new commits from upstream, run `./bin/setup`, and it will
install new gems, npm packages, update database, and restart Rails server.
## Additional resources
- [Syncing a fork](https://help.github.com/articles/syncing-a-fork/)