GIT-PRUNE(1) Git Manual GIT-PRUNE(1)
git-prune - Prune all unreachable objects from the object database
git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]
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
refs/, optionally with an 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. It 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 git-repack(1).
-n, --dry-run
Do not remove anything; just report what it would remove.
-v, --verbose
Report all removed objects.
--progress
Show progress.
--expire <time>
Only expire loose objects older than <time>.
--
Do not interpret any more arguments as options.
<head>...
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 housekeeping tasks.
For a description of which objects are considered for pruning, see
git fsck's --unreachable option.
git-fsck(1), git-gc(1), git-reflog(1)
Part of the git(1) suite
Git 2.53.0 2026-02-01 GIT-PRUNE(1)
NAME
git-prune - Prune all unreachable objects from the object database
SYNOPSIS
git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]
DESCRIPTION
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
refs/, optionally with an 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. It 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 git-repack(1).
OPTIONS
-n, --dry-run
Do not remove anything; just report what it would remove.
-v, --verbose
Report all removed objects.
--progress
Show progress.
--expire <time>
Only expire loose objects older than <time>.
--
Do not interpret any more arguments as options.
<head>...
In addition to objects reachable from any of our references, keep
objects reachable from listed <head>s.
EXAMPLES
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)
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
git-fsck(1), git-gc(1), git-reflog(1)
GIT
Part of the git(1) suite
Git 2.53.0 2026-02-01 GIT-PRUNE(1)