gitui icon indicating copy to clipboard operation
gitui copied to clipboard

Support `fixup` workflow

Open Mirko-von-Leipzig opened this issue 1 year ago • 8 comments

Is your feature request related to a problem? Please describe. I'd love a shortcut for git commit --fixup <SHA> from within gitui. Here is an article describing a common use case for it, but I'll give a short summary.

What this does is create a new commit with fixup! <target <SHA> commit message>. You can then run git rebase -i --autosquash to squash the fixup commits into the target commits. This allows you to defer fixes/ammends to previous commits without messing with git history.

A nice use case is when a PR is under review. It let's you mark changes to existing commits without the reviewers losing track of what's been reviewed (as you would if you did git commit --amend or a rebase). Once the PR is approved you neaten the commit history using git rebase -i --autosquash.

Describe the solution you'd like I'd like a new shortcut on the commit panel to trigger a git commit --fixup <SHA>. e.g. ctrl-f. This would bring up a view similar to the logs panel which would allow choosing the commit to fixup.

To be clear - this would only perform git commit --fixup <SHA> and not git rebase -i --autosquash. No rebase should be involved.

Describe alternatives you've considered Current workflow is:

  1. Stage changes
  2. Find the commit in logs view, copy the commit hash
  3. Exit gitui
  4. Manually git commit --fixup <PASTE>
  5. Re-enter gitui, continue

Additional context This was previously requested in #829 which was closed as completed - I think incorrectly as I commented.

I've created a new issue instead of attempting to resurrect that one.

Mirko-von-Leipzig avatar Jan 22 '24 07:01 Mirko-von-Leipzig

see https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupamendrewordltcommitgt for all dirty details and options 😅

extrawurst avatar Jan 22 '24 13:01 extrawurst

heck yeah, +1 for amend.

danriedl avatar Jan 27 '24 09:01 danriedl

Whatever Magit's doing in Emacs for its "instant fixup" appears to "just work" (IOW... DWIM)

btw - ty @extrawurst for making a sweet tool :)

wpcarro avatar Feb 03 '24 00:02 wpcarro

+1 this is a feature I miss the most after coming from LazyGit

Chinchzilla avatar May 10 '24 15:05 Chinchzilla