On Mon, Jul 03 2017, Francesco Mazzoli jotted: > The flag can be overridden with `--no-force-with-lease`, or by > passing the config via the command line. Thanks for hacking on this. A couple of things: * Most things (but not all) that configure `git whatevs --some-option` are configurable via whatevs.someOption, I think this should follow that convention. I.e. be push.forceWithLease not push.alwaysForceWithLease. See my https://public-inbox.org/git/20170324231013.23346-1-avarab@xxxxxxxxx/ patch series for something that went through many of these cases (although I see I didn't send it all to list). Anyway, something like 8/10 of our config variables for switches follow that convention. Let's use it for new config. * It makes sense to also document this the git-push manpage. See e.g. how we document --follow-tags: Push all the refs that [...] This can also be specified with configuration variable push.followTags. For more information, see push.followTags in git-config(1). You should add something like that to --force-with-lease. > +push.alwaysforcewithlease:: > + When true, `--force-with-lease` is the default behavior when > + using `push --force`. Explicit invocations of `--force-with-lease` > + or `--no-force-with-lease` if present, take precedence. Semantically this makes sense, and is exactly how most of these switch config variables work (and would be how it worked once refactored with my CLI arg config patch).