I have a local master
branch, tracking origin/master
, which was forked from (let's say) upstream/stable
at some point. I could pull / merge from upstream/stable
as changes became available, then send those changes on to origin/master
. Everything was good.
Now, I've added a single file, unrelated to the files in upstream/stable
, and suddenly my branch is not fast-forwardable.
I could merge from upstream/stable
(leading to an annoying merge commit) and push to origin/master
, but I suspect that, given the merge commit, my local master
branch will still not be ffwd-able from upstream
afterwards. Even at times when I don't make any further local commits to master
(but still want to constantly update origin
from upstream
).
Goodbye easy shuttling between upstream
and origin
; hello nasty ancestry structures (I've seen what repeated merges look in tree view) and useless merge commits.
I don't even know how to experiment with this, as I don't see a way to merge commit-by-commit from upstream/stable
, only all the way to its tip.
I know about merge --rebase
, but of course that rewrites local history, which doesn't work when local master
is constantly synced to origin/master
.
What to do?