On Tue, Nov 24, 2020 at 2:22 PM Alex Henrie <alexhenrie24@xxxxxxxxx> wrote: > > 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. Before making "pull.ff=only" the default, we need a transitional period in which if it's unset, a warning is printed when pulling a non-fast-forward branch. This is what my patch did several years ago. And yes, it should be possible to do what you suggest, but have you tried? I suspect both the code and the documentation would be quite convoluted. Cheers. -- Felipe Contreras