Subject: Re: Graphical tool to merge and reorder commits

From: Patrick Steinhardt <[email-masked]>
Date: Tue, 19 Aug 2025 10:07:15 +0200

On Mon, Aug 18, 2025 at 11:34:21AM -0700, Junio C Hamano wrote:
> "R. Diez" <[email-masked]> writes:
> 
> > Is there some graphical tool to merge and reorder commits with the
> > mouse? Or failing that, a good terminal interface with menus and
> > the like which allows merging and reordering in an easy, visual
> > fashion.
> > ...
> > I have tried or investigated numerous Git tools: git-gui, gitk,
> > Gittyup, GitUI, GitButler, SourceGit, git-cola, Guitar, gitg, tig,
> > giggle, qgit, RabbitVCS, Magit, lazygit, ... They are all fine for
> > normal commits and the like. However, most fall short fairly
> > quickly. For example, the ability to highlight character or
> > word-based changes inside a text line is rare. And none of them
> > really appealed to me when merging, let alone rearrange commits
> > visually.
> 
> It would be a fun little project to write a GUI front-end that emits
> "rebase -i" todo file and drives the interaction, if there is none
> already (which your research seems to indicate).
> 
> Sounds like you found a good starter project for the next GSoC or
> Outreachy students, I guess ;-)

I might have something related to that: I've got a patch series cooking
that introduces a `git history` command. With this you can say:

  $ git history reorder $COMMIT_A --(before|after) $COMMIT_B
  $ git history drop $COMMIT
  $ git history split $COMMIT

It's only intended as a starting point, and there's additional commands
we can eventually think about. I'll probably send an initial version of
this series later today.

Patrick