Git: LFS Prune
You can delete files from your local Git LFS cache with the git lfs prune
command. This will delete any local Git LFS files that are considered ‘old’. An
old file is any file not referenced by:
- the currently checked out commit,
- a commit that has not yet been pushed (to origin, or whatever
lfs.pruneremotetocheckis set to), or - a recent commit.
By default, a recent commit is any commit created in the last ‘x’ days, where ‘x’ is the sum of:
- the value of the
lfs.fetchrecentrefsdaysproperty (which defaults to seven), and - the value of the
lfs.pruneoffsetdaysproperty (which defaults to three).
Unlike Git’s built-in garbage collection, Git LFS content is not pruned
automatically, so running git lfs prune on a regular basis is a good idea to
keep your local repository size down.
You can test out what effect a prune operation will have with
git lfs prune --dry-run, and exactly which Git LFS objects will be pruned with
git lfs prune --verbose --dry-run.
As an additional safety check, you can use the --verify-remote option to check
whether the remote Git LFS store has a copy of your Git LFS objects before they
are pruned.
This makes the pruning process significantly slower, but gives you peace of mind
knowing that any pruned objects are recoverable from the server. You can enable
the --verify-remote option permanently for your system by configuring the
lfs.pruneverifyremotealways property globally:
git config --global lfs.pruneverifyremotealways true
The Git LFS command-line client doesn’t support pruning files from the server, so how you delete them depends on your hosting provider.
Via Atlassian.
Leave a comment