Re: Feature Request: Interactively pick fixup revision
- From
- Martin Imre <martinimre25@gmail.com>
- Date
- Nov 9, 2024, 13:39 UTC
- Message-ID
- <CABg7He38ctGSx75HLw7xgu85nBUFAgwtxmJS4b5iBhGgoCu-ug@mail.gmail.com>
- In-Reply-To
- <03c201db32a8$96e66e20$c4b34a60$@nexbridge.com>
On Sat, Nov 9, 2context for all your replies. Please also see below.024 at 2:09 PM <rsbecker@nexbridge.com> wrote:
Show 34 quoted lines
>
> On November 9, 2024 6:41 AM, Martin Imre wrote:
> >first email to this list, so please forgive me if I'm doing something wrong.
> >
> >My usual workflow is using `git commit --fixup <revision>` quite frequently, as it
> >eases the code reviewing process and allows for a clean history later on.
> >
> >One thing that is always cumbersome is to first find the SHA of the revision that I
> >plan to commit a fixup to.
> >I usually use git log and then copy the revision.
> >I even wrote a script that eases this process using fzf:
> >```
> >#!/bin/bash
> >
> >res=$(git log --oneline | fzf)
> >ref=$(echo $res | cut -d ' ' -f1)
> >
> >git commit --fixup ${ref}
> >```
> >
> >I don't think fzf is really necessary here, but it speeds things up.
> >
> >Anyhow, I'm really surprised that this isn't a feature of git.
> >I could see a `git commit --fixup` (without a revision) or `git commit --fixup --
> >interactive` open up the git log and let one pick the revision they want to commit a
> >fixup to.
>
> You might find that git rebase --autosquash -i <commit> might do what
> you are looking for. This allows you to clean up your topic branch prior
> to creating a pull request. Loads of documentation online about its use.
>
> Good luck,
> Randall
>I think you might have misunderstood what I'm trying to achieve.
After adding a fixup commit, I'm anyway running `git rebase --autosquash -i <commit>`.
However, my request is to get an interactive way to pick _which_ commit a fixup is targeting. Ie, I'm trying to run something that pops up a pager with the commit log for me to pick a commit that is then passed to `git commit --fixup <commit>`.
If you have fzf, try running my script in a git repo with some changes and you'll see what I'm trying to achieve.
Cheers, Martin