This is an old revision of the document!
We will use the https://git.nogafam.es/nogafam/instante-social repository for the example (as a fork of Mastodon):
// clone your repo (if you didnt yet) git clone https://git.nogafam.es/nogafam/instante-social.git cd instante-social // on the project root path, add a new remote called -upstream- // (a standard way to call it, but you can call it whatever) git remote add upstream https://github.com/mastodon/mastodon.git // get all upstream data and pull -main- branch // (mastodon,s main branch is called -main-, not -master-) git fetch upstream git pull upstream main // now, if there is unexpected changes (conflicts), you will have to merge // this snippets can help you automate the process if you want HEAD of all conflicts // IMPORTANT: when not, solve conflicts manually, and use "git add". Use at your own risk. // // reset changes on conflicted files git status | grep -i 'both modified:' | awk '{print $NF}' | xargs git reset // restore those files to put your changes first git status | grep -A 10000 'git restore' | tail -n+2 | awk '{print $NF}' | xargs git restore // now commit your changes to do the merge and push changes // (we obviate the fact that the main remote is called "origin" // and also obviate the main branch is called the same: "main") git commit git push origin main