Stacked Git logo

Stacked Git

stg-squash(1)

NAME

stg-squash - Squash two or more patches into one

SYNOPSIS

stg squash [OPTIONS] <patch>…​

DESCRIPTION

Squash two or more patches, creating one patch with their combined changes.

The squash process, at a high level:

  1. Pop all the given patches, plus any other patches on top of them.

  2. Push the given patches in the order they were given on the command line. This establishes a tree containing the combined changes from the given patches.

  3. Replace given patches with a new, squashed patch.

  4. Allow the user to interactively edit the commit message of the new, squashed patch.

  5. Push other patches that were popped in step (1), if any.

Conflicts can occur whenever a patch is pushed; this is, in steps (2) and (5). If conflicts occur, the squash command will halt such that the conflicts may be resolved manually.

OPTIONS

-n <name>
--name=<name>

Use <name> for the squashed patch

-e
--edit

Invoke editor for patch description

-d
--diff

Show diff when editing patch description

-m <message>
--message=<message>

Use message instead of invoking the editor

-f <path>
--file=<path>

Use the contents of file instead of invoking the editor. Use "-" to read from stdin.

--no-verify

Disable commit-msg hook

-s[=<value>]
--signoff[=<value>]

Add "Signed-off-by" message trailer.

The value is optional and defaults to the committer name and email. This option may be provided multiple times.

--ack[=<value>]

Add "Acked-by" message trailer.

The value is optional and defaults to the committer’s name and email. This option may be provided multiple times.

--review[=<value>]

Add "Reviewed-by" message trailer.

The value is optional and defaults to the committer’s name and email. This option may be provided multiple times.

--author=<name-and-email>

Set the author "name <email>"

--authname=<name>

Set the author name

--authemail=<email>

Set the author email

--authdate=<date>

Set the date the patch was authored.

Use "now" to use the current time and date.

--committer-date-is-author-date

Instead of using the current time as the committer date, use the author date of the commit as the committer date.

--save-template=<file>

Instead of running the command, just write the patch description to FILE, and exit. (If FILE is "-", write to stdout.)

When driving StGit from another program, it may be useful to first call a command with --save-template, then let the user edit the message, and then call the same command with --file.

StGit

Part of the StGit suite - see stg(1)