Skip to content

implement edit mode #11103

@schacon

Description

@schacon

Similar to #11102, GitButler has an "edit mode" where you can essentially checkout a single commit (something like detached HEAD), make whatever changes you want and then pop back out of edit mode, rebasing child commits with the new parentage.

❯ but status
╭┄00 [Unassigned Changes]
┊
┊╭┄t6 [sc-branch-29] (#66)
┊●   38e9fac awesome change
┊◐   868c14b another change
┊◐   4698f1c my first change
├╯
┊
● 204e309 (common base) [origin/main] 2025-07-06 08:10:34 +0200 Merge pull request #10 from schacon/sc-description

❯ but edit 868c14b
Switching to edit mode on commit 868c14b - my first change

You are now in edit mode. Make any file changes and then save your new commit state by running `but edit finalize` or cancel with `but edit cancel`

Files changed in this commit:
-    po A app/views/bookmarks/index.html.erb
-    h0 M config/routes.rb
-    kx A test-file.md

❯ but status
You are in edit mode on commit 868c14b - my first change. 

Make any file changes and then save your new commit state by running `but edit finalize` or cancel with `but edit cancel`

Files changed in this commit:
-    po A app/views/bookmarks/index.html.erb
-    h0 M config/routes.rb
-    kx A test-file.md

❯ but edit finalize
Saved new state of commit 868c14b -> 204e309
Rebasing remaining commits...
  - 42b004 -> 6d82fcf worktree change v1
  - 047e7d -> 79497a awesome stuff

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions