# "discard!" commit message for commits that should be removed while cleaning up the history

2 messages from 2026-07-12 to 2026-07-12. Participants: Simon Richter, Junio C Hamano.
Thread: https://gitlist.dev/t/65980

## Simon Richter, 2026-07-12 05:54

Subject: "discard!" commit message for commits that should be removed while cleaning up the history
Message-ID: <07c9811e-41db-473e-ba0a-cdcbf8187be7@hogyros.de>

```
Hi,

I often add printf statements during debugging, which obviously should 
not end up in the final submission. My usual approach is to commit these 
immediately, into commits with a message of "DISCARD", so that when I do 
a final rebase pass, I can remove the debug code easily.

Would it make sense to add a mechanism that autosquash understands 
directly, and that could be checked for by a push hook or CI rule?

    Simon

```

## Junio C Hamano, 2026-07-12 13:28

Subject: Re: "discard!" commit message for commits that should be removed while cleaning up the history
Message-ID: <xmqqbjcc72wo.fsf@gitster.g>
In-Reply-To: <07c9811e-41db-473e-ba0a-cdcbf8187be7@hogyros.de>

```
Simon Richter <Simon.Richter@hogyros.de> writes:

> I often add printf statements during debugging, which obviously should 
> not end up in the final submission. My usual approach is to commit these 
> immediately, into commits with a message of "DISCARD", so that when I do 
> a final rebase pass, I can remove the debug code easily.
>
> Would it make sense to add a mechanism that autosquash understands 
> directly, and that could be checked for by a push hook or CI rule?

The sequencer machinery used by "git rebase [-i]" already knows how
to react to commits with certain subjects.  For example, a commit
with the subject "fixup! <title>" causes that commit to be moved
next to the target commit, and its "pick" insn is turned into a
"fixup" insn.  The "git commit" command itself helps you prepare
such a specially formatted commit title with options like "--fixup".

So, it is not totally out of the question to add support for
noticing a subject that begins with "drop!" (rather than your proposed
"DISCARD", purely so that it matches the existing "fixup!" convention
that instructs the sequencer to use the "fixup" insn).  This would
automatically turn the "pick" insn into a "drop" insn when "git
rebase -i" works on a history segment that includes such a commit.

On the "git commit" side, we likely do not want to add any support
similar to the "--fixup" option (for example, "--fixup=drop"), as
you can run "git commit -m 'drop!'" just as easily.

Having said all that, you can use a custom GIT_SEQUENCE_EDITOR that
notices commits you titled "DISCARD" and rewrites the "pick" insn for
these commits into a "drop" insn in the todo list, without making
any changes to Git.

```
