Merge branch 'rl/show-empty-prefix'
[alt-git.git] / Documentation / git-cherry.txt
blobf6c19c734d0fad09e7f7203a69959546f4b6a052
1 git-cherry(1)
2 =============
4 NAME
5 ----
6 git-cherry - Find commits not merged upstream
8 SYNOPSIS
9 --------
10 [verse]
11 'git cherry' [-v] [<upstream> [<head> [<limit>]]]
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 commits are compared with their 'patch id', obtained from
18 the 'git patch-id' program.
20 Every commit that doesn't exist in the <upstream> branch
21 has its id (sha1) reported, prefixed by a symbol.  The ones that have
22 equivalent change already
23 in the <upstream> branch are prefixed with a minus (-) sign, and those
24 that only exist in the <head> branch are prefixed with a plus (+) symbol:
26                __*__*__*__*__> <upstream>
27               /
28     fork-point
29               \__+__+__-__+__+__-__+__> <head>
32 If a <limit> has been given then the commits along the <head> branch up
33 to and including <limit> are not reported:
35                __*__*__*__*__> <upstream>
36               /
37     fork-point
38               \__*__*__<limit>__-__+__> <head>
41 Because 'git cherry' compares the changeset rather than the commit id
42 (sha1), you can use 'git cherry' to find out if a commit you made locally
43 has been applied <upstream> under a different commit id.  For example,
44 this will happen if you're feeding patches <upstream> via email rather
45 than pushing or pulling commits directly.
48 OPTIONS
49 -------
50 -v::
51         Verbose.
53 <upstream>::
54         Upstream branch to compare against.
55         Defaults to the first tracked remote branch, if available.
57 <head>::
58         Working branch; defaults to HEAD.
60 <limit>::
61         Do not report commits up to (and including) limit.
63 SEE ALSO
64 --------
65 linkgit:git-patch-id[1]
67 GIT
68 ---
69 Part of the linkgit:git[1] suite