Skip to content

ff edit

Open a session to edit an existing commit's files. A revision is required. Fufu creates a session branch at that commit and switches there; ff done records your edits, replays later commits, and returns you to the original branch.

Usage

Usage: ff edit [OPTIONS] <rev>

Examples

ff edit HEAD~2                  # Edit an earlier commit
ff edit HEAD                    # Edit the latest commit
# Edit the files in this checkout, then finish:
ff done

Options

Arguments:
  <rev>
          The commit to edit. A branch name is a switch instead

Options:
      --json
          Emit machine-readable JSON

      --fetch
          Fetch now on commands that support fetching, regardless of cadence

      --no-fetch
          Skip the fetch: read the tracking refs as they stand

      --session <name>
          Session name for this invocation

  -C, --cwd <dir>
          Run as if fufu had been started in <dir>

  -h, --help
          Print help (see a summary with '-h')

Branch targets and parked work

A branch name is treated as a switch, not an editing session: ff edit main continues main. Use a commit revision when you want a session.

The original branch stays in place while you edit. Its uncommitted work is parked there and resumes when the session ends. Switching away from the session also parks its work, so you can resume later. ff resolve uses a similar session for held rewrite conflicts.

Finishing and recovery

ff done amends the selected commit and replays what followed. ff done --abandon returns without applying the session, keeping its uncommitted work in retained operation history. ff undo can reverse session operations; ff history shows the individual steps.