72 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| git-rev-list(1)
 | |
| ===============
 | |
| 
 | |
| NAME
 | |
| ----
 | |
| git-rev-list - Lists commit objects in reverse chronological order
 | |
| 
 | |
| 
 | |
| SYNOPSIS
 | |
| --------
 | |
| [verse]
 | |
| 'git rev-list' [<options>] <commit>... [[--] <path>...]
 | |
| 
 | |
| 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
 |