How to work with forks on remote repositories with git

Step 1: Once you forked a remote repository, add the original repository as a new remote called “upstream”

git remote add upstream <ORIGINAL_REPOSITORY_URL>

Step 2: Fetch the branches of the upstream remote

git fetch upstream

Step 3: Update your branch with the upstream

git rebase upstream/<BRANCH>

Step 4: Force push the updated branch to your fork’s remote repository

git push origin <BRANCH> --force

Step 5: Start working on the updated fork using a new feature branch

git switch -c <FEATURE_BRANCH>

Step 6: Work as usual, write great code and add your commits

Step 7: Before pushing your changes to create a merge request, fetch and rebase again to upstream

git fetch upstream

git rebase upstream/<BRANCH>

Step 8: Push the feature branch

git push -u origin HEAD

Step 9: Create the merge request using the url given in the push status message (example for gitlab, actual behaviour may differ depending on used git server software)

https://<HOST>/<USER>/<REPO>/-/merge_requests/new?merge_request%5Bsource_branch%5D=<FEATURE_BRANCH>


Written by
Christian Konrad
Web Developer, Product Manager and UI Designer in Frankfurt a. Main, Germany. My specialization is generalization.