gitui-org / gitui-org/gitui

Support `fixup` workflow

Open
#2,019 8 comments 9 reactions 0 assignees View on GitHub
feature-request
Dominant language
Rust
Stars
22.5k
Forks
773
PR merge metrics
No merged PRs in 30d

Description

**Is your feature request related to a problem? Please describe.**
I'd love a shortcut for `git commit --fixup ` from within gitui. [Here](https://dev.to/koffeinfrei/the-git-fixup-workflow-386d) 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! 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 `. 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 ` 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 `
5. Re-enter gitui, continue

**Additional context**
This was previously requested in #829 which was closed as completed - I think incorrectly as I [commented](https://github.com/extrawurst/gitui/issues/829#issuecomment-1895881991).

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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.