Skip to content

status: suggest git merge --continue, not git commit - #2249

Open
jvns wants to merge 1 commit into
gitgitgadget:masterfrom
jvns:advice-merge
Open

jvns wants to merge 1 commit into
gitgitgadget:masterfrom
jvns:advice-merge

Conversation

@jvns

@jvns jvns commented Oct 6, 2026 •

Copy link
Copy Markdown

We discussed making this consistent in another thread: https://lore.kernel.org/git/623cdf71-8076-4967-aff1-3ebeb57d1e3a@app.fastmail.com/T/#m4bdcb555cbdff4132fb1a678594f26b598e0b38f

From some research:

So I don't see any obvious reason not to change the advice.

Translations will need to be updated, I still don't know how that process works. Updating the translations should be straightforward since it's just a change in the command.

cc: D. Ben Knoble" ben.knoble@gmail.com
cc: Phillip Wood phillip.wood123@gmail.com

During a merge conflict, we suggest using --continue to continue the
merge for rebase, revert, and cherry-pick.

Change the `git merge` advice to be consistent.
Commit 367ff69 says that
`git merge --continue` is intended to be a synonym for `git commit`,
and the `git merge` man page already suggests to use
`git merge --continue`.

Signed-off-by: Julia Evans <julia@jvns.ca>
@jvns jvns changed the title advice: suggest git merge --continue, not git commit status: suggest git merge --continue, not git commit Oct 6, 2026
@jvns

jvns commented Oct 6, 2026

Copy link
Copy Markdown
Author

/submit

@gitgitgadget

gitgitgadget Bot commented Oct 6, 2026

Copy link
Copy Markdown

Submitted as pull.2249.git.1791291762665.gitgitgadget@gmail.com

To fetch this version into FETCH_HEAD:

git fetch https://github.com/gitgitgadget/git/ pr-2249/jvns/advice-merge-v1

To fetch this version to local tag pr-2249/jvns/advice-merge-v1:

git fetch --no-tags https://github.com/gitgitgadget/git/ tag pr-2249/jvns/advice-merge-v1

@gitgitgadget

gitgitgadget Bot commented Oct 6, 2026

Copy link
Copy Markdown

Phillip Wood wrote on the Git mailing list (how to reply to this email):

Hi Julia

On 06/10/2026 14:02, Julia Evans via GitGitGadget wrote:
> From: Julia Evans <julia@jvns.ca>
> > During a merge conflict, we suggest using --continue to continue the
> merge for rebase, revert, and cherry-pick.
> > Change the `git merge` advice to be consistent.
> Commit 367ff694281ce569edd8f6e444fc770f92f5d215 says that

When we use the output of "git show -s --format=reference" when referring to previous commits, so this would be

367ff69428 (merge: add '--continue' option as a synonym for 'git commit', 2016-12-14)

> `git merge --continue` is intended to be a synonym for `git commit`,
> and the `git merge` man page already suggests to use
> `git merge --continue`.

This looks like a sensible improvement. I wonder if we should fix the grammar at the same time so it says

    (use "git merge --continue" to conclude the merge)

rather than

    (use "git merge --continue" to conclude merge)

Thanks

Phillip

> Signed-off-by: Julia Evans <julia@jvns.ca>
> ---
>      status: suggest git merge --continue, not git commit
>      >      We discussed making this consistent in another thread:
>      https://lore.kernel.org/git/623cdf71-8076-4967-aff1-3ebeb57d1e3a@app.fastmail.com/T/#m4bdcb555cbdff4132fb1a678594f26b598e0b38f
>      >      From some research:
>      >       * git merge --continue was introduced in 367ff694281c in Dec 2016. It
>         says that git merge --continue is intended to be a synonym for git
>         commit. (thread here:
>         https://lore.kernel.org/git/20161214083757.26412-1-judge.packham@gmail.com/)
>       * This line of the advice was last touched in July 2016, before git
>         merge --continue was introduced.
>      >      So I don't see any obvious reason not to change the advice.
>      >      Translations will need to be updated, I still don't know how that
>      process works. Updating the translations should be straightforward since
>      it's just a change in the command.
> > Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2249%2Fjvns%2Fadvice-merge-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2249/jvns/advice-merge-v1
> Pull-Request: https://github.com/gitgitgadget/git/pull/2249
> >   t/t7060-wtstatus.sh    | 8 ++++----
>   t/t7512-status-help.sh | 4 ++--
>   wt-status.c            | 4 ++--
>   3 files changed, 8 insertions(+), 8 deletions(-)
> > diff --git a/t/t7060-wtstatus.sh b/t/t7060-wtstatus.sh
> index 942ddbbf0e..a9b435b5e3 100755
> --- a/t/t7060-wtstatus.sh
> +++ b/t/t7060-wtstatus.sh
> @@ -37,7 +37,7 @@ test_expect_success 'M/D conflict does not segfault' '
>   	cat >expect <<EOF &&
>   On branch side
>   You have unmerged paths.
> -  (fix conflicts and run "git commit")
> +  (fix conflicts and run "git merge --continue")
>     (use "git merge --abort" to abort the merge)
>   >   Unmerged paths:
> @@ -141,7 +141,7 @@ test_expect_success 'status when conflicts with add and rm advice (deleted by th
>   	cat >expected <<\EOF &&
>   On branch main
>   You have unmerged paths.
> -  (fix conflicts and run "git commit")
> +  (fix conflicts and run "git merge --continue")
>     (use "git merge --abort" to abort the merge)
>   >   Unmerged paths:
> @@ -174,7 +174,7 @@ test_expect_success 'status when conflicts with add and rm advice (both deleted)
>   	cat >expected <<\EOF &&
>   On branch conflict_second
>   You have unmerged paths.
> -  (fix conflicts and run "git commit")
> +  (fix conflicts and run "git merge --continue")
>     (use "git merge --abort" to abort the merge)
>   >   Unmerged paths:
> @@ -198,7 +198,7 @@ test_expect_success 'status when conflicts with only rm advice (both deleted)' '
>   	cat >expected <<\EOF &&
>   On branch conflict_second
>   You have unmerged paths.
> -  (fix conflicts and run "git commit")
> +  (fix conflicts and run "git merge --continue")
>     (use "git merge --abort" to abort the merge)
>   >   Changes to be committed:
> diff --git a/t/t7512-status-help.sh b/t/t7512-status-help.sh
> index aca4b6d332..776a0dd5b8 100755
> --- a/t/t7512-status-help.sh
> +++ b/t/t7512-status-help.sh
> @@ -31,7 +31,7 @@ test_expect_success 'status when conflicts unresolved' '
>   	cat >expected <<\EOF &&
>   On branch conflicts
>   You have unmerged paths.
> -  (fix conflicts and run "git commit")
> +  (fix conflicts and run "git merge --continue")
>     (use "git merge --abort" to abort the merge)
>   >   Unmerged paths:
> @@ -53,7 +53,7 @@ test_expect_success 'status when conflicts resolved before commit' '
>   	cat >expected <<\EOF &&
>   On branch conflicts
>   All conflicts fixed but you are still merging.
> -  (use "git commit" to conclude merge)
> +  (use "git merge --continue" to conclude merge)
>   >   Changes to be committed:
>   	modified:   main.txt
> diff --git a/wt-status.c b/wt-status.c
> index 57772c7501..f7b0dc29d5 100644
> --- a/wt-status.c
> +++ b/wt-status.c
> @@ -1273,7 +1273,7 @@ static void show_merge_in_progress(struct wt_status *s,
>   		status_printf_ln(s, color, _("You have unmerged paths."));
>   		if (s->hints) {
>   			status_printf_ln(s, color,
> -					 _("  (fix conflicts and run \"git commit\")"));
> +					 _("  (fix conflicts and run \"git merge --continue\")"));
>   			status_printf_ln(s, color,
>   					 _("  (use \"git merge --abort\" to abort the merge)"));
>   		}
> @@ -1282,7 +1282,7 @@ static void show_merge_in_progress(struct wt_status *s,
>   			_("All conflicts fixed but you are still merging."));
>   		if (s->hints)
>   			status_printf_ln(s, color,
> -				_("  (use \"git commit\" to conclude merge)"));
> +				_("  (use \"git merge --continue\" to conclude merge)"));
>   	}
>   	wt_longstatus_print_trailer(s);
>   }
> > base-commit: 5a7d1e8045ce66c908f62598e26cbb8df7b39a90

@gitgitgadget

gitgitgadget Bot commented Oct 6, 2026

Copy link
Copy Markdown

User Phillip Wood <phillip.wood123@gmail.com> has been added to the cc: list.

@gitgitgadget

gitgitgadget Bot commented Oct 6, 2026

Copy link
Copy Markdown

Junio C Hamano wrote on the Git mailing list (how to reply to this email):

"Julia Evans via GitGitGadget" <gitgitgadget@gmail.com> writes:

[Administrivia]

As you have

    cc: D. Ben Knoble" ben.knoble@gmail.com

at the end of your pull request that you gave to GitGitGadget, you
ended up with a bogus Cc: address that reads

    "D. Ben Knoble <ben.knoble"@gmail.com>

you may want to help improving GGG by raising an issue to reject (or
ignore) such a malformed address.

[end of administrivia]

> diff --git a/t/t7060-wtstatus.sh b/t/t7060-wtstatus.sh
> index 942ddbbf0e..a9b435b5e3 100755
> --- a/t/t7060-wtstatus.sh
> +++ b/t/t7060-wtstatus.sh
> @@ -37,7 +37,7 @@ test_expect_success 'M/D conflict does not segfault' '
>  	cat >expect <<EOF &&
>  On branch side
>  You have unmerged paths.
> -  (fix conflicts and run "git commit")
> +  (fix conflicts and run "git merge --continue")
>    (use "git merge --abort" to abort the merge)

This message comes from show_merge_in_progress(), which is called
only when the code is convinced that it is seeing an unmerged
index due to a conflicted git merge.  We can therefore make this
message as merge-specific as we want.  The suggestion to use
'git merge --abort' already does this.

> diff --git a/wt-status.c b/wt-status.c
> index 57772c7501..f7b0dc29d5 100644
> --- a/wt-status.c
> +++ b/wt-status.c
> @@ -1273,7 +1273,7 @@ static void show_merge_in_progress(struct wt_status *s,
>  		status_printf_ln(s, color, _("You have unmerged paths."));
>  		if (s->hints) {
>  			status_printf_ln(s, color,
> -					 _("  (fix conflicts and run \"git commit\")"));
> +					 _("  (fix conflicts and run \"git merge --continue\")"));
>  			status_printf_ln(s, color,
>  					 _("  (use \"git merge --abort\" to abort the merge)"));
>  		}
> @@ -1282,7 +1282,7 @@ static void show_merge_in_progress(struct wt_status *s,
>  			_("All conflicts fixed but you are still merging."));
>  		if (s->hints)
>  			status_printf_ln(s, color,
> -				_("  (use \"git commit\" to conclude merge)"));
> +				_("  (use \"git merge --continue\" to conclude merge)"));
>  	}
>  	wt_longstatus_print_trailer(s);
>  }

We could tighten "You have unmerged paths." even further to indicate
that these paths came from a conflicted 'git merge'.  In the same
file, show_cherry_pick_in_progress() and show_revert_in_progress()
already provide instructions very specific to these commands.  Since
the message for 'git merge' is the oldest, it is not surprising that
we did not update it when 'git merge --continue', the instructions
for cherry-pick and revert, or 'git merge --abort' instruction were
added to the system.  This commit moves us belatedly in the right
direction, and as always, it is better late than never.

The changes look good.  Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant