git-prune - Prune all unreachable objects from the object database
git prune [-n] [-v] [--expire <expire>] [--] [<head>...]
In most cases, users should run git gc
, which calls git prune
the section "NOTES", below.
This runs git fsck --unreachable
using all the refs available in
, 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
also removes entries from .git/shallow that are not reachable by any ref.
Note that unreachable, packed objects will remain. If this is not desired, see
Do not remove anything; just report what it
Report all removed objects.
Do not interpret any more arguments as
Only expire loose objects older than
In addition to objects reachable from any of
our references, keep objects reachable from listed <head>s.
To prune objects not used by your repository or another that borrows from your
repository via its .git/objects/info/alternates
$ git prune $(cd ../another && git rev-parse --all)
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
For a description of which objects are considered for pruning, see git
's --unreachable option.
Part of the git(1)