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)


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