Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git prune [-n] [--expire=<date>]

Descrizione

Il comando git prune cancella oggetti loose che non sono raggiungibili da nessun ref. Normalmente è invocato indirettamente da git gc; eseguirlo direttamente bypassa alcuni controlli di sicurezza di gc. Il periodo di grazia --expire (default 2 settimane) previene la cancellazione di oggetti creati di recente che possono appartenere a operazioni in corso.

Nell'uso quotidiano, git prune si integra con alias e CI.

Capire il modello dati di Git aiuta a prevedere i risultati.

Quando usarlo

La maggior parte degli utenti non esegue mai git prune manualmente — git gc lo gestisce. Ricorri ad esso solo quando i default di gc non si adattano, o quando hai esplicitamente eliminato la storia con filter-repo e vuoi recupero immediato dello spazio. Anche allora, git gc --prune=now è il percorso più comune.

Opzioni comuni

OpzioneDescrizione
-n, --dry-runMostra cosa verrebbe cancellato senza cancellare.
--expire=<date>Pota solo oggetti più vecchi di questo.
--progressMostra il progresso.
--verboseDettaglia ogni oggetto potato.

Esempi

git prune -n
# Anteprima del prune

git prune --expire=now
# Aggressivo: cancella tutti gli irraggiungibili adesso

git prune --expire=2.weeks.ago
# Comportamento predefinito: mantiene irraggiungibili recenti

Errori comuni

git prune --expire=now può cancellare oggetti che sono ancora nel reflog o stash se li hai recentemente fatti scadere. Esegui sempre prima git fsck per capire cosa è a rischio. Su un repo trafficato, fare prune mentre un fetch o rebase sta accadendo può causare problemi.

Comandi correlati

git gc, git fsck, git reflog expire, git repack