# git-series

## NAME



           git-series - track changes to a patch series with git
    


## SYNOPSIS



           **git series**[_SUBCOMMAND_] [_OPTIONS_]
    


## DESCRIPTION



           **git series** tracks changes to a patch series over time.  **git series**
           also tracks a cover letter for the patch series, formats the
           series for email, and prepares pull requests.
    
           Use **git series start** _seriesname_ to start a patch series
           _seriesname_.  Use normal **git** commands to commit changes, and use
           **git series status** to check what has changed.  Use **git series cover**
           to add or edit a cover letter.  Use **git series add** and **git series**
           **commit**(or **git series commit -a**) to commit changes to the patch
           series.  Use **git series rebase -i** to help rework or reorganize the
           patch series.  Use **git series format** to prepare the patch series
           to send via email, or **git series req** to prepare a "please pull"
           mail.
    
           Running **git series** without arguments shows the list of patch
           series, marking the current patch series with a '*'.
    


## SUBCOMMANDS



           **git series add** _change_...
                  Add changes to the staging area for the next **git series**
                  **commit**.
    
                  _change_...
                         Changes to add: any combination of "series", "base",
                         and "cover".
    
           **git series base**[**-d** |**--delete**] [_base_]
                  Get or set the base commit for the patch series.  With no
                  parameters, print the hash of the base commit.  With
                  parameters, set or delete the base commit.
    
                  This only changes the base in the working version of the
                  patch series; use **git series add base** to add that change to
                  the next **git series commit** , or use **git series commit -a** to
                  commit the new base and all other changes to the series in
                  one step.
    
                  _base_   New base commit.  This can use a commit hash, ref
                         name, or special syntaxes such as refname^ or
                         refname~2.
    
                  **-d** |**--delete**
                         Delete the current base commit.
    
           **git series checkout** _name_
                  Resume work on the patch series _name_ ; check out the current
                  version as HEAD.
    
           **git series commit**[**-a** |**--all**] [**-m** _message_] [**-v** |**--verbose**]
                  Record a new version of the patch series.  Without
                  arguments, this will run an editor to edit a commit
                  message, and then commit the changes previously added with
                  **git series add**.
    
                  **-a** |**--all**
                         Commit all changes, not just those added with **git**
                         **series add**.
    
                  **-m** _message_
                         Use _message_ as the commit message, rather than
                         running an editor.
    
                  **-v** |**--verbose**
                         Show a diff of the commit in the editor, below the
                         commit message, as a reminder of the changes in the
                         commit.  This diff will not appear in the commit
                         message.
    
           **git series cover**[**-d** |**--delete**]
                  Create or edit the cover letter for the patch series.
                  Without arguments, this will run an editor to edit the
                  cover letter.
    
                  This only changes the cover letter in the working version
                  of the patch series; use **git series add cover** to add that
                  change to the next **git series commit** , or use **git series**
                  **commit -a** to commit the new cover letter and all other
                  changes to the series in one step.
    
                  **-d** |**--delete**
                         Delete the cover letter rather than editing it.
    
           **git series cp**[_source_] _dest_
                  Copy the series _source_ to _dest_ , including any work in
                  progress, staged or unstaged.  _source_ defaults to the
                  current series if omitted.
    
           **git series delete** _name_
                  Delete the series _name_ , including any work in progress,
                  staged or unstaged.
    
           **git series detach**
                  Stop working on any patch series.  Any changes in progress,
                  staged or unstaged, will remain intact.  To start working
                  on the branch again, use **git series checkout**.
    
           **git series diff**
                  Show changes to the patch series from the current working
                  version to the staged version.  Changes to the cover letter
                  appear as standard text diffs.  If both the old and new
                  version contain base and series entries, **git series diff**
                  will find and show the correspondence between the old and
                  new versions of each commit.  The series diff format shows
                  reordered commits, deleted or added commits, and modified
                  commits.  For modified commits, the series diff includes a
                  simplified interdiff between the commits.
    
           **git series format**[**--in-reply-to=**_Message-Id_] [**--no-from**] [**-v** _N_ |
           **--reroll-count=**_N_] [**--rfc**] [**--stdout**] [**--subject-prefix=**_prefix_]
                  Prepare the patch series to send via email.  This creates
                  one file per patch in the series, plus one additional file
                  for the cover letter if any.  The patch series must have a
                  base set with **git series base** , to identify the series of
                  patches to format.
    
                  Each file contains one email in mbox format, ready to send,
                  with email headers threading all the patches together.  If
                  the series has a cover letter, all of the patches will
                  include headers to make them a reply to the cover letter;
                  otherwise, all of the patches will include headers to make
                  them a reply to the first patch.
    
                  **--in-reply-to=**_Message-Id_
                         Make the first mail a reply to the specified
                         Message-Id.  The Message-Id may include or omit the
                         surrounding angle brackets; git-series will add them
                         if not present.
    
                  **--no-from**
                         By default, **git series format** includes a "From:"
                         line in the mail body for the commit author when
                         formatting commits you didn't write; this allows you
                         to send the patches as emails from your own address
                         while preserving authorship information for each
                         patch.  **git series format --no-from** will instead use
                         the commit author as the "From:" address for each
                         patch mail.  Use this when producing patch files for
                         purposes other than email.
    
                  **-v** _N_ | **--reroll-count=**_N_
                         Mark the patch series as PATCH v _N_.  The patch
                         filenames and mail subjects will include the version
                         number.
    
                  **--rfc** Use [RFC PATCH] instead of the standard [PATCH]
                         prefix.
    
                  **--stdout**
                         Write the entire patch series to stdout rather than
                         to separate patch files.
    
                  **--subject-prefix=**_prefix_
                         Use [_prefix_] instead of the standard [PATCH] prefix.
    
           **git series help**[_subcommand_]
                  Show help for **git series** or a subcommand.  Without
                  arguments, shows a summary of the subcommands supported by
                  **git series**.
    
                  _subcommand_
                         Show help for _subcommand_.
    
           **git series log**[**-p** |**--patch**]
                  Show the history of the patch series.
    
                  **-p** |**--patch**
                         Include a patch for each change committed to the
                         series.  This uses the same series diff format as
                         **git series diff**.
    
           **git series mv**[_source_] _dest_
                  Move (rename) the series _source_ to _dest_ , including any work
                  in progress, staged or unstaged.  _source_ defaults to the
                  current series if omitted.  Moving the current series will
                  make the destination the current series.
    
                  You can also invoke this as **git series rename**.
    
           **git series rebase**[**-i** |**--interactive**] [_onto_]
                  Rebase the patch series, either onto a new base,
                  interactively, or both.  The patch series must have a base
                  set with **git series base** , to identify the series of patches
                  to rebase.
    
                  _onto_   Commit to rebase the series onto.  This can use a
                         commit hash, ref name, or special syntaxes such as
                         refname^ or refname~2.
    
                  **-i** |**--interactive**
                         Interactively edit the list of commits.  This uses
                         the same format and syntax as **git rebase -i** , to
                         allow reordering, dropping, combining, or editing
                         commits.
    
           **git series req**[**-p** |**--patch**] _url tag_
                  Generate a mail requesting a pull of the patch series.
    
                  Before running this command, push the patch series to the
                  repository at _url_ , as a tag or branch named _tag_.
    
                  A pull request for a signed or annotated tag will include
                  the message from the tag.  The pull request will also
                  include the cover letter if any, unless the tag message
                  already contains the cover letter.  The subject of the mail
                  will include the first line from the cover letter, or the
                  name of the series if no cover letter.
    
                  The patch series must have a base set with **git series base** ,
                  to identify the series of patches to request a pull of.
    
                  _url_    URL of the repository to pull from.
    
                  _tag_    Name of a tag or branch to request a pull from.
    
                  **-p** |**--patch**
                         Include a patch showing the combined change made by
                         all the patches in the series.  This can help a
                         reviewer see the effect of pulling the series.
    
           **git series start** _name_
                  Start a new patch series named _name_.
    
           **git series status**
                  Show the status of the current patch series.
    
                  This shows any changes staged for the next **git series**
                  **commit** , changes in the current working copy but not staged
                  for the next **git series commit** , and hints about the next
                  commands to run.
    
           **git series unadd** _change_
                  Remove changes from the next **git series commit** , undoing **git**
                  **series add**.
    
                  The changes remain in the current working version of the
                  series.
    
                  _change_...
                         Changes to remove: any combination of "series",
                         "base", and "cover".
    


* * *