pijul push

Push a patch to a remote repository


pijul push [-h | --help] [-V | --version] [--repository <repository>] [--from-branch <from_branch>] [(-p | --port) <port>] [--to-branch <to_branch>] [--set-remote <set-remote>] [--set-default] [-a | --all] [remote]


Push patches from a branch of a local repository to a branch of a remote repository. Patch selection is either interactive, or includes all patches in the current branch if -a (or --all) is present.

If the <to_branch> does not exist in the remote repository, it will be created. If the <from_branch> does not exist in the local repository, this command does nothing.

This command can also save remote repositories, in two different ways:

  • If --set-default is specified, the remote destination becomes the default destination, and it is not necessary to give it a name. Subsequent pushes to the same address can be done by simply running pijul push.

    It is not necessary to give a name (using --set-remote) to the default destination, although it is possible.

  • If --set-remote is specified, the remote destination is saved as <set-remote>, and can be reused in subsequent commands. For example, after calling pijul push me@nest.pijul.com:example --set-remote nest, pushing to the same address (me@nest.pijul.com:example) again can be done by running pijul push nest.

Saved remote repositories are written to ".pijul/meta.toml" (at the root of the repository).


pijul push me@nest.pijul.com:example --set-remote nest
pijul push nest


  • -h, --help

    Print a help message and exit.

  • -V, --version

    Print the version of Pijul and exit.

  • --repository <repository>

    Don't run this command in the current directory, run it in <repository> instead.

  • --from-branch <from-branch>

    Push patches from branch <from-branch> in the local repository, instead of the current branch (the default).

  • -p <port>, --port <port>

    If the remote repository is accessed over SSH, the port of the remote SSH server, defaulting to 22 (the standard SSH port).

  • --to-branch <to-branch>

    Push patches to branch <to-branch> in the remote repository, instead of the default branch ("master").

  • --set-remote <set-remote>

    Save this remote repository as <set-remote>. In subsequent commands, name <set-remote> can be used instead of this URI.

  • --set-default

    Make this remote repository the default. If subsequent commands involving remote repositories are called without a URI, the default remote repository will be used as the URI.

  • -a, --all

    Don't select patches to push interactively, push all patches instead.

  • [remote]

    Name or URI of the remote repository. A name can be for instance "nest", while a URI can be a HTTP or HTTPS URL, or an SSH address (such as "me@nest.pijul.com:repository"), or a local path.