---
name: "stg-push"
section: "1"
platform: "linux"
package: "stgit"
version: "0.18-1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/stg-push"
---

# stg-push(1)

Push one or more patches onto the stack

## NAME

stg-push - Push one or more patches onto the stack

## SYNOPSIS

```
stg push [options] [--] [<patch1>] [<patch2>] [<patch3>..<patch4>]
```

## DESCRIPTION

Push one or more patches (defaulting to the first unapplied one) onto the stack. The *push* operation allows patch reordering by commuting them with the three-way merge algorithm. If there are conflicts while pushing a patch, those conflicts are written to the work tree, and the command halts. Conflicts raised during the push operation have to be fixed and the *git add --update* command run (alternatively, you may undo the conflicting push with *stg undo*).

The command also notifies when the patch becomes empty (fully merged upstream) or is modified (three-way merged) by the *push* operation.

## OPTIONS

- \-a, --all

  Push all the unapplied patches.

- \-n NUMBER, --number NUMBER

  Push the specified number of patches.

  With a negative number, push all but that many patches.

- \--reverse

  Push the patches in reverse order.

- \--set-tree

  Push the patches, but don’t perform a merge. Instead, the resulting tree will be identical to the tree that the patch previously created.

  This can be useful when splitting a patch by first popping the patch and creating a new patch with some of the changes. Pushing the original patch with *--set-tree* will avoid conflicts and only the remaining changes will be in the patch.

- \-k, --keep

  Keep the local changes.

- \-m, --merged

  Check for patches merged upstream.

## STGIT

Part of the StGit suite - see [**stg**(1)](/stg/1.md)
