mirror of
https://github.com/git/git.git
synced 2024-05-28 11:36:10 +02:00
Merge branch 'jk/rev-list-disk-usage' into next
"git rev-list" command learned "--disk-usage" option. * jk/rev-list-disk-usage: docs/rev-list: add some examples of --disk-usage docs/rev-list: add an examples section
This commit is contained in:
commit
37a29a3495
|
@ -31,6 +31,99 @@ include::rev-list-options.txt[]
|
|||
|
||||
include::pretty-formats.txt[]
|
||||
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue