git-prune - Prune all unreachable objects from the object database
Contents
Description
Note
In most cases, users should run gitgc, which calls gitprune. See the section "NOTES", below.
This runs gitfsck--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 gitprune-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).
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)
Git
Part of the git(1) suite
Git 2.48.1 07/02/2025 GIT-PRUNE(1)
Name
git-prune - Prune all unreachable objects from the object database
Notes
In most cases, users will not need to call gitprune directly, but should instead call gitgc, which
handles pruning along with many other housekeeping tasks.
For a description of which objects are considered for pruning, see gitfsck's --unreachable option.
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.
See Also
git-fsck(1), git-gc(1), git-reflog(1)
Synopsis
gitprune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]
