NAME
----
-git-prune - Prunes all unreachable objects from the object database
+git-prune - Prune all unreachable objects from the object database
SYNOPSIS
--------
-'git-prune' [-n] [--] [<head>...]
+'git-prune' [-n] [-v] [--expire <expire>] [--] [<head>...]
DESCRIPTION
-----------
-This runs `git-fsck-objects --unreachable` using the heads
-specified on the command line (or `$GIT_DIR/refs/heads/\*` and
-`$GIT_DIR/refs/tags/\*` if none is specified), and prunes all
-unreachable objects from the object database. In addition, it
+NOTE: In most cases, users should run 'git-gc', which calls
+'git-prune'. See the section "NOTES", below.
+
+This runs 'git-fsck --unreachable' using all the refs
+available in `$GIT_DIR/refs`, optionally with additional set of
+objects specified on the command line, and prunes all unpacked
+objects unreachable from any of these head objects from the object database.
+In addition, it
prunes the unpacked objects that are also found in packs by
-running `git prune-packed`.
+running 'git-prune-packed'.
+
+Note that unreachable, packed objects will remain. If this is
+not desired, see linkgit:git-repack[1].
OPTIONS
-------
Do not remove anything; just report what it would
remove.
---::
+-v::
+ Report all removed objects.
+
+\--::
Do not interpret any more arguments as options.
+--expire <time>::
+ Only expire loose objects older than <time>.
+
<head>...::
- Instead of keeping objects
+ In addition to objects
reachable from any of our references, keep objects
- reachable from only listed <head>s.
-+
-Note that the explicitly named <head>s are *not* appended to the
-default set of references, but they replace them. In general you
-would want to say `git prune $(git-rev-parse --all) extra1
-extra2` to keep chains of commits leading to extra1, extra2,
-... in addition to what are reachable from your own refs.
-Saying `git prune extra1 extra2` would *lose* objects reachable
-only from the usual refs, which is usually not what you want.
-
+ reachable from listed <head>s.
EXAMPLE
-------
-To prune objects not used by your repository and another that
+To prune objects not used by your repository nor another that
borrows from your repository via its
`.git/objects/info/alternates`:
------------
-$ git prune $(git-rev-parse --all) \
- $(cd ../another && $(git-rev-parse --all))
+$ git prune $(cd ../another && $(git rev-parse --all))
------------
+Notes
+-----
+
+In most cases, users will not need to call 'git-prune' directly, but
+should instead call 'git-gc', which handles pruning along with
+many other housekeeping tasks.
+
+For a description of which objects are considered for pruning, see
+'git-fsck''s --unreachable option.
+
+SEE ALSO
+--------
+
+linkgit:git-fsck[1],
+linkgit:git-gc[1],
+linkgit:git-reflog[1]
+
Author
------
Written by Linus Torvalds <torvalds@osdl.org>
GIT
---
-Part of the gitlink:git[7] suite
-
+Part of the linkgit:git[1] suite