SYNOPSIS

git-format-patch [-n | -k] [-o <dir> | --stdout] [-s] [-c] [--diff-options] <his> [<mine>]

DESCRIPTION

Prepare each commit with its patch since <mine> head forked from <his> head, one file per patch formatted to resemble UNIX mailbox format, for e-mail submission or use with git-am(1).

Each output file is numbered sequentially from 1, and uses the first line of the commit message (massaged for pathname safety) as the filename.

When -o is specified, output files are created in <dir>; otherwise they are created in the current working directory. This option is ignored if --stdout is specified.

When -n is specified, instead of "[PATCH] Subject", the first line is formatted as "[PATCH N/M] Subject", unless you have only one patch.

OPTIONS

-o|--output-directory <dir>

Use <dir> to store the resulting files, instead of the current working directory.

-n|--numbered

Name output in [PATCH n/m] format.

-k|--keep-subject

Do not strip/add [PATCH] from the first line of the commit log message.

-s|--signoff

Add Signed-off-by: line to the commit message, using the committer identity of yourself.

-c|--check

Display suspicious lines in the patch. The definition of suspicious lines is currently the lines that has trailing whitespaces, and the lines whose indentation has a SP character immediately followed by a TAB character.

--stdout

This flag generates the mbox formatted output to the standard output, instead of saving them into a file per patch and implies --mbox.

EXAMPLES

git-format-patch -k --stdout R1..R2 | git-am -3 -k

Extract commits between revisions R1 and R2, and apply them on top of the current branch using git-am to cherry-pick them.

git-format-patch origin

Extract commits the current branch accumulated since it pulled from origin the last time in a patch form for e-mail submission.

git-format-patch -M -B origin

The same as the previous one, except detect and handle renames and complete rewrites intelligently to produce renaming patch. A renaming patch reduces the amount of text output, and generally makes it easier to review it. Note that the "patch" program does not understand renaming patch well, so use it only when you know the recipient uses git to apply your patch.

See Also

git-am(1), git-send-email(1)

Author

Written by Junio C Hamano <junkio@cox.net>

Documentation

Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT

Part of the git(7) suite