git-cherry(1)
=============

NAME
----
git-cherry - Find commits not merged upstream

SYNOPSIS
--------
[verse]
'git cherry' [-v] [<upstream> [<head> [<limit>]]]

DESCRIPTION
-----------
The changeset (or "diff") of each commit between the fork-point and <head>
is compared against each commit between the fork-point and <upstream>.
The commits are compared with their 'patch id', obtained from
the 'git patch-id' program.

Every commit that doesn't exist in the <upstream> branch
has its id (sha1) reported, prefixed by a symbol.  The ones that have
equivalent change already
in the <upstream> branch are prefixed with a minus (-) sign, and those
that only exist in the <head> branch are prefixed with a plus (+) symbol:

               __*__*__*__*__> <upstream>
              /
    fork-point
              \__+__+__-__+__+__-__+__> <head>


If a <limit> has been given then the commits along the <head> branch up
to and including <limit> are not reported:

               __*__*__*__*__> <upstream>
              /
    fork-point
              \__*__*__<limit>__-__+__> <head>


Because 'git cherry' compares the changeset rather than the commit id
(sha1), you can use 'git cherry' to find out if a commit you made locally
has been applied <upstream> under a different commit id.  For example,
this will happen if you're feeding patches <upstream> via email rather
than pushing or pulling commits directly.


OPTIONS
-------
-v::
	Verbose.

<upstream>::
	Upstream branch to compare against.
	Defaults to the first tracked remote branch, if available.

<head>::
	Working branch; defaults to HEAD.

<limit>::
	Do not report commits up to (and including) limit.

SEE ALSO
--------
linkgit:git-patch-id[1]

GIT
---
Part of the linkgit:git[1] suite
