Git --distributed-is-the-new-centralized
Topics ▾ Version 1.5.4 ▾ git-prune last updated in 2.5.3


git-prune [-n] [--expire <expire>] [--] [<head>...]


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 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.



Do not remove anything; just report what it would remove.


Do not interpret any more arguments as options.

--expire <time>

Only expire loose objects older than <time>.


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 nor another that borrows from your repository via its .git/objects/info/alternates:

$ git prune $(cd ../another && $(git-rev-parse --all))


Written by Linus Torvalds <>


Documentation by David Greaves, Junio C Hamano and the git-list <>.


Part of the git(7) suite