diff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt index f2b83df2fa..b06e11ae56 100644 --- a/Documentation/git-rev-list.txt +++ b/Documentation/git-rev-list.txt @@ -14,44 +14,7 @@ SYNOPSIS 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 reachable from any of -the commits given on the command line form a set, 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 "''..''" can be used as a -short-hand for "^'' ''". For example, either of -the following may be used interchangeably: - ------------------------------------------------------------------------ -$ git rev-list origin..HEAD -$ git rev-list HEAD ^origin ------------------------------------------------------------------------ - -Another special notation is "''...''" 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 ------------------------------------------------------------------------ +include::rev-list-description.txt[] 'rev-list' is a very essential Git command, since it provides the ability to build and traverse commit ancestry graphs. For diff --git a/Documentation/rev-list-description.txt b/Documentation/rev-list-description.txt new file mode 100644 index 0000000000..14d78b91aa --- /dev/null +++ b/Documentation/rev-list-description.txt @@ -0,0 +1,38 @@ +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 reachable from any of +the commits given on the command line form a set, 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 "''..''" can be used as a +short-hand for "^'' ''". For example, either of +the following may be used interchangeably: + +----------------------------------------------------------------------- +$ git rev-list origin..HEAD +$ git rev-list HEAD ^origin +----------------------------------------------------------------------- + +Another special notation is "''...''" 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 +-----------------------------------------------------------------------