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

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

SYNOPSIS
--------
'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>.

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.

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

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

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 linkgit:git[7] suite
