summaryrefslogtreecommitdiff
path: root/Documentation/git-rev-list.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/git-rev-list.txt')
-rw-r--r--Documentation/git-rev-list.txt113
1 files changed, 113 insertions, 0 deletions
diff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt
new file mode 100644
index 0000000000..b08dfbc3c4
--- /dev/null
+++ b/Documentation/git-rev-list.txt
@@ -0,0 +1,113 @@
+git-rev-list(1)
+===============
+
+NAME
+----
+git-rev-list - Lists commit objects in reverse chronological order
+
+
+SYNOPSIS
+--------
+[verse]
+'git rev-list' [ \--max-count=<number> ]
+ [ \--skip=<number> ]
+ [ \--max-age=<timestamp> ]
+ [ \--min-age=<timestamp> ]
+ [ \--sparse ]
+ [ \--merges ]
+ [ \--no-merges ]
+ [ \--first-parent ]
+ [ \--remove-empty ]
+ [ \--full-history ]
+ [ \--not ]
+ [ \--all ]
+ [ \--branches[=<pattern>] ]
+ [ \--tags[=<pattern>] ]
+ [ \--remotes[=<pattern>] ]
+ [ \--glob=<glob-pattern> ]
+ [ \--stdin ]
+ [ \--quiet ]
+ [ \--topo-order ]
+ [ \--parents ]
+ [ \--timestamp ]
+ [ \--left-right ]
+ [ \--left-only ]
+ [ \--right-only ]
+ [ \--cherry-mark ]
+ [ \--cherry-pick ]
+ [ \--encoding[=<encoding>] ]
+ [ \--(author|committer|grep)=<pattern> ]
+ [ \--regexp-ignore-case | -i ]
+ [ \--extended-regexp | -E ]
+ [ \--fixed-strings | -F ]
+ [ \--date=(local|relative|default|iso|rfc|short) ]
+ [ [\--objects | \--objects-edge] [ \--unpacked ] ]
+ [ \--pretty | \--header ]
+ [ \--bisect ]
+ [ \--bisect-vars ]
+ [ \--bisect-all ]
+ [ \--merge ]
+ [ \--reverse ]
+ [ \--walk-reflogs ]
+ [ \--no-walk ] [ \--do-walk ]
+ <commit>... [ \-- <paths>... ]
+
+DESCRIPTION
+-----------
+
+List commits that are reachable by following the `parent` links from the
+given commit(s), but exclude commits that are reachable from the one(s)
+given with a '{caret}' in front of them. The output is given in reverse
+chronological order by default.
+
+You can think of this as a set operation. Commits given on the command
+line form a set of commits that are reachable from any of them, and then
+commits reachable from any of the ones given with '{caret}' in front are
+subtracted from that set. The remaining commits are what comes out in the
+command's output. Various other options and paths parameters can be used
+to further limit the result.
+
+Thus, the following command:
+
+-----------------------------------------------------------------------
+ $ git rev-list foo bar ^baz
+-----------------------------------------------------------------------
+
+means "list all the commits which are reachable from 'foo' or 'bar', but
+not from 'baz'".
+
+A special notation "'<commit1>'..'<commit2>'" can be used as a
+short-hand for "{caret}'<commit1>' '<commit2>'". For example, either of
+the following may be used interchangeably:
+
+-----------------------------------------------------------------------
+ $ git rev-list origin..HEAD
+ $ git rev-list HEAD ^origin
+-----------------------------------------------------------------------
+
+Another special notation is "'<commit1>'...'<commit2>'" which is useful
+for merges. The resulting set of commits is the symmetric difference
+between the two operands. The following two commands are equivalent:
+
+-----------------------------------------------------------------------
+ $ git rev-list A B --not $(git merge-base --all A B)
+ $ git rev-list A...B
+-----------------------------------------------------------------------
+
+'rev-list' is a very essential git command, since it
+provides the ability to build and traverse commit ancestry graphs. For
+this reason, it has a lot of different options that enables it to be
+used by commands as different as 'git bisect' and
+'git repack'.
+
+OPTIONS
+-------
+
+:git-rev-list: 1
+include::rev-list-options.txt[]
+
+include::pretty-formats.txt[]
+
+GIT
+---
+Part of the linkgit:git[1] suite