]> git.ipfire.org Git - thirdparty/git.git/commit
builtin/history: implement "reword" subcommand
authorPatrick Steinhardt <ps@pks.im>
Tue, 13 Jan 2026 09:54:39 +0000 (10:54 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 13 Jan 2026 13:41:17 +0000 (05:41 -0800)
commitd205234cb05a5e330c0f7f5b3ea764533a74d69e
tree8977722181bf9b8eb485d94ff7257a8e03f866fa
parenta675183d483cb106c076395936cd9e602ae94404
builtin/history: implement "reword" subcommand

Implement a new "reword" subcommand for git-history(1). This subcommand
is similar to the user performing an interactive rebase with a single
commit changed to use the "reword" instruction.

The "reword" subcommand is built on top of the replay subsystem
instead of the sequencer. This leads to some major differences compared
to git-rebase(1):

  - We do not check out the commit that is to be reworded and instead
    perform the operation in-memory. This has the obvious benefit of
    being significantly faster compared to git-rebase(1), but even more
    importantly it allows the user to rewrite history even if there are
    local changes in the working tree or in the index.

  - We do not execute any hooks, even though we leave some room for
    changing this in the future.

  - By default, all local branches that contain the commit will be
    rewritten. This especially helps with workflows that use stacked
    branches.

Helped-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-history.adoc
builtin/history.c
t/meson.build
t/t3450-history.sh
t/t3451-history-reword.sh [new file with mode: 0755]