Most Git users are contributors, not maintainers, and want to use `git pull` to rebase their changes before sending a pull request to the upstream project. However, novice Git users often forget to specify the --rebase option when pulling, leading to an unwanted merge commit. To avoid that situation, Git should require users to explicitly specify whether their primary workflow is a contributor/rebasing workflow or a maintainer/merging workflow. Signed-off-by: Alex Henrie <alexhenrie24@xxxxxxxxx> --- builtin/pull.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/builtin/pull.c b/builtin/pull.c index 3e624d1e00..8ec8e6f5d3 100644 --- a/builtin/pull.c +++ b/builtin/pull.c @@ -327,6 +327,13 @@ static enum rebase_type config_get_rebase(void) if (!git_config_get_value("pull.rebase", &value)) return parse_config_rebase("pull.rebase", value, 1); + if (strcmp(opt_ff, "--ff-only") != 0) { + warning(_("Pulling without specifying whether to rebase or to merge is discouraged\n" + "and will be disallowed in a future Git release.\n" + "Next time, run `git config pull.rebase (true|false)` first\n" + "or specify --rebase or --no-rebase on the command line.\n")); + } + return REBASE_FALSE; } -- 2.25.1