> Is there a reasonable way to effectively keep rebasing on top of multiple upstream branches?
This is the problem. You cannot rebase with a stacked PR flow. The correct way to do this is use the merge command as intended.
One of the most powerful features of git is the ability to understand a common history between multiple parties and everyone throws this away entirely with a rebase and causes non-stop conflicts. I simply do not understand the preference for it, especially in shared repos.
Do not use a rebase workflow with any work that is shared with others unless you are communicating regularly and understand how obliterating your commit history will change how git views what is changed between two repositories. Rebase only works well if you are in a leaf branch you control and even then I prefer a single squash merge back into upstream rather than multiple rebases if possible.
I can't even tell you how much of my life has been lost correcting merge conflicts caused by bad rebasing of my commits by others.
This is the problem. You cannot rebase with a stacked PR flow. The correct way to do this is use the merge command as intended.
One of the most powerful features of git is the ability to understand a common history between multiple parties and everyone throws this away entirely with a rebase and causes non-stop conflicts. I simply do not understand the preference for it, especially in shared repos.
Do not use a rebase workflow with any work that is shared with others unless you are communicating regularly and understand how obliterating your commit history will change how git views what is changed between two repositories. Rebase only works well if you are in a leaf branch you control and even then I prefer a single squash merge back into upstream rather than multiple rebases if possible.
I can't even tell you how much of my life has been lost correcting merge conflicts caused by bad rebasing of my commits by others.