STG-PUBLISH(1)                  StGit Manual                  STG-PUBLISH(1)

NAME         top

       stg-publish - Push the stack changes to a merge-friendly branch

SYNOPSIS         top

       stg publish [options] [--] [branch]

DESCRIPTION         top

       This command commits a set of changes on a separate (called public)
       branch based on the modifications of the given or current stack. The
       history of the public branch is not re-written, making it
       merge-friendly and feasible for publishing. The heads of the stack
       and public branch may be different but the corresponding tree objects
       are always the same.

       If the trees of the stack and public branch are different (otherwise
       the command has no effect), StGit first checks for a rebase of the
       stack since the last publishing. If a rebase is detected, StGit
       creates a commit on the public branch corresponding to a merge
       between the new stack base and the latest public head.

       If no rebasing was detected, StGit checks for new patches that may
       have been created on top of the stack since the last publishing. If
       new patches are found and are not empty, they are checked into the
       public branch keeping the same commit information (e.g. log message,
       author, committer, date).

       If the above tests fail (e.g. patches modified or removed), StGit
       creates a new commit on the public branch having the same tree as the
       stack but the public head as its parent. The editor will be invoked
       if no "--message" option is given.

       It is recommended that stack modifications falling in different
       categories as described above are separated by a publish command in
       order to keep the public branch history cleaner (otherwise StGit
       would generate a big commit including several stack modifications).

       The --unpublished option can be used to check if there are applied
       patches that have not been published to the public branch. This is
       done by trying to revert the patches in the public tree (similar to
       the push --merged detection). The --last option tries to find the
       last published patch by checking the SHA1 of the patch tree agains
       the public tree. This may fail if the stack was rebased since the
       last publish command.

       The public branch name can be set via the branch.<branch>.public
       configuration variable (defaulting to "<branch>.public").

OPTIONS         top

       -b BRANCH, --branch BRANCH
           Use BRANCH instead of the default branch.

       -l, --last
           Show the last published patch.

       -u, --unpublished
           Show applied patches that have not been published.

       --author "NAME <EMAIL>"
           Set the author details.

       --authname NAME
           Set the author name.

       --authemail EMAIL
           Set the author email.

       --authdate DATE
           Set the author date.

       -m MESSAGE, --message MESSAGE
           Use MESSAGE instead of invoking the editor.

       -f FILE, --file FILE
           Use the contents of FILE instead of invoking the editor. (If FILE
           is "-", write to stdout.)

           Add a "Signed-off-by:" to the end of the patch.

           Add an "Acked-by:" line to the end of the patch.

           Add a "Reviewed-by:" line to the end of the patch.

STGIT         top

       Part of the StGit suite - see stg(1)

COLOPHON         top

       This page is part of the stgit (Stacked Git) project.  Information
       about the project can be found at ⟨⟩.
       If you have a bug report for this manual page, see
       ⟨⟩.  This page was obtained from the
       project's upstream Git repository ⟨⟩ on
       2018-10-29.  (At that time, the date of the most recent commit that
       was found in the repository was 2018-02-22.)  If you discover any
       rendering problems in this HTML version of the page, or you believe
       there is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to

StGit                            10/29/2018                   STG-PUBLISH(1)