git-submodule: add support for --rebase.
[gitweb.git] / Documentation / git-cherry.txt
index 14d0bd51cd6ea23696b8b60d4e804440f408ce1e..7deefdae8f995d843971f6beff24af8325b99f1f 100644 (file)
@@ -3,30 +3,69 @@ git-cherry(1)
 
 NAME
 ----
-git-cherry - Some git command not yet documented.
-
+git-cherry - Find commits not merged upstream
 
 SYNOPSIS
 --------
-'git-cherry' [ --option ] <args>...
+'git cherry' [-v] [<upstream> [<head> [<limit>]]]
 
 DESCRIPTION
 -----------
-Does something not yet documented.
+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
 -------
---option::
-       Some option not yet documented.
+-v::
+       Verbose.
+
+<upstream>::
+       Upstream branch to compare against.
+       Defaults to the first tracked remote branch, if available.
 
-<args>...::
-       Some argument not yet documented.
+<head>::
+       Working branch; defaults to HEAD.
 
+<limit>::
+       Do not report commits up to (and including) limit.
+
+SEE ALSO
+--------
+linkgit:git-patch-id[1]
 
 Author
 ------
-Written by Junio C Hamano <junkio@cox.net>
+Written by Junio C Hamano <gitster@pobox.com>
 
 Documentation
 --------------
@@ -34,5 +73,4 @@ Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
 
 GIT
 ---
-Part of the link:git.html[git] suite
-
+Part of the linkgit:git[1] suite