git-prune-packed - Linux


The git-prune-packed command removes packed Git objects that are not referenced by any reachable commit and which are not required for repository integrity. It is useful for reducing the size of a repository and improving performance.


git prune-packed [<options>]


  • -n: Dry run; show which objects would be removed but do not actually remove them.
  • -v: Be verbose; provide additional output describing the removal process.
  • –all: Remove all unreachable packed objects, including those that are referenced by loose objects.


Simple Example:

Prune only unreachable packed objects:

git prune-packed

Advanced Example:

Remove all unreachable packed objects, including those referenced by loose objects:

git prune-packed --all

Common Issues

  • Error: object does not exist: This error indicates that the specified object is not available in the repository. It can occur if the object has been removed from the repository or if there is a network connectivity issue preventing the object from being downloaded.
  • Warning: Skipping removal of object : This warning indicates that the specified object is still referenced by a loose object. It can be safely ignored if the intention was to only remove packed objects.


Combine with git prune:

Remove both packed and loose objects:

git prune; git prune-packed

Use in a script:

Prune packed objects as part of a repository maintenance script:

git fetch --prune
git prune-packed

Related Commands

  • git fsck: Verify the integrity of a Git repository.
  • git garbage-collect: Remove unreachable Git objects.