STG-REBASE(1)

NAME
stg-rebase - Move the stack base to another point in history

SYNOPSIS

stg rebase [OPTIONS] [committish]

DESCRIPTION

Pop all patches from the current stack, move the stack base to the given new base and push the patches back.

Merge conflicts may arise when patches are being pushed-back onto the stack. If this occurs, resolve the conflicts and then continue the rebase with the following sequence:

    stg add --update
    stg refresh
    stg goto top-patch

Or to skip the conflicting patch:

    stg undo --hard
    stg push next-patch..top-patch

OPTIONS

-i, --interactive
    Interactively manipulate patches in editor

-n, --nopush
    Do not push back patches after rebasing

-m, --merged
    Check for patches that may have been merged upstream.

    When pushing-back patches, each patch is checked to see if its changes already exist in the new stack base. If a patch’s changes are detected to have been merged, the patch will still exist in the stack, but become empty after the rebase operation.

--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.

--autostash
    Automatically create a temporary stash before the operation begins, and apply it after the operation completes. This allows a rebase to be performed on a dirty work tree. Note however that the final stash application may result in non-trivial conflicts.

--conflicts[=<policy>]
    Either "allow" or "disallow" pushing a patch with conflicts.

    Using --conflicts=allow (or just --conflicts) allows pushing a patch that may result in unresolved merge conflicts. The patch will be pushed and files with conflicts will be left with conflict markers to be resolved manually; or the operation undone with stg undo --hard. This is the default behavior and also corresponds to the "stgit.push.allow-conflicts" variable being set to "true".

    Using --conflicts=disallow disallows pushing any patch that would result in merge conflicts. The operation will stop on the last patch that can be pushed without conflicts. This behavior can be configured by setting "stgit.push.allow-conflicts" to "false".

-x <cmd>, --exec=<cmd>
    Execute the given shell command after each patch is successfully applied during the rebase operation. If the command fails (exits with non-zero status), the entire transaction is rolled back and no patches remain applied.

    This option may be specified multiple times to run multiple commands in sequence after each patch.

    This is similar to git rebase --exec, but note that stgit rolls back the entire operation on failure rather than leaving you at the failing point.

STGIT

Part of the StGit suite - see stg(1)