blob: 2d0daae626dd8e58c5a5c72ef999e36f56bcdce7 [file] [log] [blame]
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 diffs are compared after removing any whitespace and line numbers.
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