From Apache Arrow Git Tips I’m used to working with git merge and this has made life difficult for me when working with Apache Arrow because it doesn’t use a merge model and pull request branches often need to rebased against master and force pushed.
There are numerous ways to work in this model but this article documents the approach I use, based on some guidance I was given on one of my PRs. I’m documenting this for my own benefit but hopefully it helps others too.
When you first fork the repo, you need to set up the upstream apache git repo as a remote. I prefer to name this remote apache rather than upstream since it is more explicit, especially if I add other remotes (such as other contributors forks).