Subject: Re: bug: `git commit --verbose` not removing text below scissor-line

From: Junio C Hamano <[email-masked]>
Date: Thu, 10 Jul 2025 08:45:37 -0700

Oren Levi <[email-masked]> writes:

> What did you do before the bug happened? (Steps to reproduce your issue)
> 1. Run `git ci -a`
> 2. Edit COMMIT_EDITMSG (using vscode)
> 3. Save&Close

As you have commit.verbose set, and your "ci" is merely a short-hand
for "commit", this is "git commit -a -v".  It should give us a patch
text after a scissors line, that looks like

    #
    # ------------------------ >8 ------------------------
    # Do not modify or remove the line above.
    # Everything below it will be ignored.
    diff --git c/builtin/fetch.c i/builtin/fetch.c
    index d48262bdc7..3267617a54 100644
    --- c/builtin/fetch.c
    +++ i/builtin/fetch.c
    @@ -640,9 +640,6 @@ static struct ref *get_ref_map(struct remote *remote,
            return ref_map;
     }

Here is what I did as a quick sanity check

    $ git checkout --detach HEAD
    $ git reset --soft HEAD~23
    $ git commit -a -v

and

 (1) I do see the "# ---- >8 ----" followed by "# Do not modify or
     remove the line above."

 (2) after making edit near the top of the file, without touching
     anything around the "---- >8 ----" line, saving the file made a
     commit.

 (3) "git show" does show the patch after the log message, but "git
     show -s" or "git cat-file commit HEAD" do not, i.e. "Everything
     below is ignored." the message says was true.

so, in short, does not reproduce for me with the info provided.

Since I do not use vscode, my reproduction attempt used an editor
different from it.  It is possible that your editor may be mangling
the line that it is not supposed to touch, but that is not something
I can tell.

> Anything else you want to add:
> related config:
> core.editor = code --wait
> commit.verbose = true
> alias.ci = commit