On Mon, Nov 23, 2020 at 8:41 PM Felipe Contreras <felipe.contreras@xxxxxxxxx> wrote: > > 1. git pull # fail by default unless it's a fast-forward > 2. git pull --merge # force a merge (unless it's a fast-forward, > depending on pull.ff) > 3. git pull --rebase # force a rebase (unless it's a fast-forward, > depending on pull.ff) I'm not sure that we need a new --merge flag for this. It sounds like we just want pull.ff to default to "only" if pull.rebase is not set, and if pull.rebase is set (or --rebase or --no-rebase is passed on the command line) then pull.ff should default to "true". If I understand correctly, that would get us everything we want without adding any new variables or making any major changes to how Git works. -Alex