130 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
git-rev-list(1)
 | 
						|
===============
 | 
						|
 | 
						|
NAME
 | 
						|
----
 | 
						|
git-rev-list - Lists commit objects in reverse chronological order
 | 
						|
 | 
						|
 | 
						|
SYNOPSIS
 | 
						|
--------
 | 
						|
[verse]
 | 
						|
'git rev-list' [<options>] <commit>... [--] [<path>...]
 | 
						|
 | 
						|
DESCRIPTION
 | 
						|
-----------
 | 
						|
 | 
						|
:git-rev-list: 1
 | 
						|
include::rev-list-description.adoc[]
 | 
						|
 | 
						|
'rev-list' is an 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 enable it to be
 | 
						|
used by commands as different as 'git bisect' and
 | 
						|
'git repack'.
 | 
						|
 | 
						|
OPTIONS
 | 
						|
-------
 | 
						|
 | 
						|
:git-rev-list: 1
 | 
						|
include::rev-list-options.adoc[]
 | 
						|
 | 
						|
include::pretty-formats.adoc[]
 | 
						|
 | 
						|
EXAMPLES
 | 
						|
--------
 | 
						|
 | 
						|
* Print the list of commits reachable from the current branch.
 | 
						|
+
 | 
						|
----------
 | 
						|
git rev-list HEAD
 | 
						|
----------
 | 
						|
 | 
						|
* Print the list of commits on this branch, but not present in the
 | 
						|
  upstream branch.
 | 
						|
+
 | 
						|
----------
 | 
						|
git rev-list @{upstream}..HEAD
 | 
						|
----------
 | 
						|
 | 
						|
* Format commits with their author and commit message (see also the
 | 
						|
  porcelain linkgit:git-log[1]).
 | 
						|
+
 | 
						|
----------
 | 
						|
git rev-list --format=medium HEAD
 | 
						|
----------
 | 
						|
 | 
						|
* Format commits along with their diffs (see also the porcelain
 | 
						|
  linkgit:git-log[1], which can do this in a single process).
 | 
						|
+
 | 
						|
----------
 | 
						|
git rev-list HEAD |
 | 
						|
git diff-tree --stdin --format=medium -p
 | 
						|
----------
 | 
						|
 | 
						|
* Print the list of commits on the current branch that touched any
 | 
						|
  file in the `Documentation` directory.
 | 
						|
+
 | 
						|
----------
 | 
						|
git rev-list HEAD -- Documentation/
 | 
						|
----------
 | 
						|
 | 
						|
* Print the list of commits authored by you in the past year, on
 | 
						|
  any branch, tag, or other ref.
 | 
						|
+
 | 
						|
----------
 | 
						|
git rev-list --author=you@example.com --since=1.year.ago --all
 | 
						|
----------
 | 
						|
 | 
						|
* Print the list of objects reachable from the current branch (i.e., all
 | 
						|
  commits and the blobs and trees they contain).
 | 
						|
+
 | 
						|
----------
 | 
						|
git rev-list --objects HEAD
 | 
						|
----------
 | 
						|
 | 
						|
* Compare the disk size of all reachable objects, versus those
 | 
						|
  reachable from reflogs, versus the total packed size. This can tell
 | 
						|
  you whether running `git repack -ad` might reduce the repository size
 | 
						|
  (by dropping unreachable objects), and whether expiring reflogs might
 | 
						|
  help.
 | 
						|
+
 | 
						|
----------
 | 
						|
# reachable objects
 | 
						|
git rev-list --disk-usage --objects --all
 | 
						|
# plus reflogs
 | 
						|
git rev-list --disk-usage --objects --all --reflog
 | 
						|
# total disk size used
 | 
						|
du -c .git/objects/pack/*.pack .git/objects/??/*
 | 
						|
# alternative to du: add up "size" and "size-pack" fields
 | 
						|
git count-objects -v
 | 
						|
----------
 | 
						|
 | 
						|
* Report the disk size of each branch, not including objects used by the
 | 
						|
  current branch. This can find outliers that are contributing to a
 | 
						|
  bloated repository size (e.g., because somebody accidentally committed
 | 
						|
  large build artifacts).
 | 
						|
+
 | 
						|
----------
 | 
						|
git for-each-ref --format='%(refname)' |
 | 
						|
while read branch
 | 
						|
do
 | 
						|
	size=$(git rev-list --disk-usage --objects HEAD..$branch)
 | 
						|
	echo "$size $branch"
 | 
						|
done |
 | 
						|
sort -n
 | 
						|
----------
 | 
						|
 | 
						|
* Compare the on-disk size of branches in one group of refs, excluding
 | 
						|
  another. If you co-mingle objects from multiple remotes in a single
 | 
						|
  repository, this can show which remotes are contributing to the
 | 
						|
  repository size (taking the size of `origin` as a baseline).
 | 
						|
+
 | 
						|
----------
 | 
						|
git rev-list --disk-usage --objects --remotes=$suspect --not --remotes=origin
 | 
						|
----------
 | 
						|
 | 
						|
GIT
 | 
						|
---
 | 
						|
Part of the linkgit:git[1] suite
 |