Git 1.8.5
[git] / Documentation / git-cherry.txt
1 git-cherry(1)
2 =============
3
4 NAME
5 ----
6 git-cherry - Find commits not merged upstream
7
8 SYNOPSIS
9 --------
10 [verse]
11 'git cherry' [-v] [<upstream> [<head> [<limit>]]]
12
13 DESCRIPTION
14 -----------
15 The changeset (or "diff") of each commit between the fork-point and <head>
16 is compared against each commit between the fork-point and <upstream>.
17 The diffs are compared after removing any whitespace and line numbers.
18
19 Every commit that doesn't exist in the <upstream> branch
20 has its id (sha1) reported, prefixed by a symbol.  The ones that have
21 equivalent change already
22 in the <upstream> branch are prefixed with a minus (-) sign, and those
23 that only exist in the <head> branch are prefixed with a plus (+) symbol:
24
25                __*__*__*__*__> <upstream>
26               /
27     fork-point
28               \__+__+__-__+__+__-__+__> <head>
29
30
31 If a <limit> has been given then the commits along the <head> branch up
32 to and including <limit> are not reported:
33
34                __*__*__*__*__> <upstream>
35               /
36     fork-point
37               \__*__*__<limit>__-__+__> <head>
38
39
40 Because 'git cherry' compares the changeset rather than the commit id
41 (sha1), you can use 'git cherry' to find out if a commit you made locally
42 has been applied <upstream> under a different commit id.  For example,
43 this will happen if you're feeding patches <upstream> via email rather
44 than pushing or pulling commits directly.
45
46
47 OPTIONS
48 -------
49 -v::
50         Verbose.
51
52 <upstream>::
53         Upstream branch to compare against.
54         Defaults to the first tracked remote branch, if available.
55
56 <head>::
57         Working branch; defaults to HEAD.
58
59 <limit>::
60         Do not report commits up to (and including) limit.
61
62 SEE ALSO
63 --------
64 linkgit:git-patch-id[1]
65
66 GIT
67 ---
68 Part of the linkgit:git[1] suite