Repository navigation
Conversation
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>
git merge --continue, not git commitgit merge --continue, not git commit
Author
|
/submit |
|
Submitted as pull.2249.git.1791291762665.gitgitgadget@gmail.com To fetch this version into To fetch this version to local tag |
|
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 |
|
User |
|
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 --continuewas introduced in 367ff69 in Dec 2016. It says thatgit merge --continueis intended to be a synonym forgit commit. (thread here: https://lore.kernel.org/git/20161214083757.26412-1-judge.packham@gmail.com/)git merge --continuewas 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.
cc: D. Ben Knoble" ben.knoble@gmail.com
cc: Phillip Wood phillip.wood123@gmail.com