Skip to content

Squash in Interactive Rebase discards the squashed commit's message and keeps only the previous commit's message (behaves like Fixup) #2812

Description

@torbenjk

Description

When performing an interactive rebase and marking a commit as Squash, Fork does not preserve or merge the squashed commit's message. The resulting combined commit ends up with only the message of the previous commit (the one being squashed into). That is the expected behavior of Fixup, not Squash.

Steps to reproduce

  1. Create a branch with at least two commits:
    • Commit A: First commit message
    • Commit B (on top of A): Second commit message
  2. Start an interactive rebase covering both commits.
  3. Mark commit B as Squash.
  4. Apply / start the rebase.

Expected behavior

Git's squash keeps both messages: the previous commit's message and the squashed commit's message are combined (with the CLI you get an editor pre-filled with both to edit). Commit B's message should not be lost.

Actual behavior

The resulting commit's message is just First commit message. Commit B's message (Second commit message) is discarded. Squash produces the same result as Fixup.

Environment

  • Fork version: 2.20.1.0
  • OS: Windows 11
  • Git version: 2.50.1.windows.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions