Synopsis
git unpack-objects [-r] [-q] < <pack-file>
Description
The git unpack-objects command reads a packfile from stdin and writes its contents as individual loose objects into the object database. This is the inverse of git pack-objects.
Dans l'usage quotidien, git unpack-objects s'intègre étroitement avec les alias de shell, les plugins d'éditeur et l'intégration continue. Les utilisateurs avancés ajoutent souvent des alias combinant les flags qu'ils passent toujours, ou enveloppent la commande dans des scripts qui appliquent les conventions d'équipe. Le formatage de la sortie peut être personnalisé via la configuration Git — pretty formats, schémas de couleurs et comportement du pager sont tous ajustables. Quand quelque chose tourne mal, la première étape de diagnostic est généralement de relancer la commande avec GIT_TRACE=1 dans l'environnement, ce qui révèle les appels de plomberie sous-jacents. Pour les situations inhabituelles, la sortie --help (git unpack-objects --help) ouvre la page de manuel complète avec les détails de chaque option, y compris celles rarement utilisées dans les workflows ordinaires mais essentielles pour le débogage ou le scripting à grande échelle.
Comprendre comment git unpack-objects interagit avec le reste du modèle de données de Git — la base d'objets, l'index, les refs et l'arborescence de travail — est rentable. Chaque commande opère sur un sous-ensemble de ces pièces, et savoir laquelle elle touche aide à prédire les résultats et récupérer après les erreurs. Lire la documentation officielle de Git en parallèle de la pratique sur un dépôt jetable est la façon la plus rapide d'intérioriser les subtilités. La plupart des problèmes de production avec Git proviennent de l'une de trois causes : comportement par défaut surprenant, opérations réseau partielles, ou réécriture d'historique déjà partagé. Un modèle mental fonctionnel des effets de bord de git unpack-objects aide à éviter les trois.
When to Use
Most developers never need this. It's used for recovering from a corrupt pack (unpack what's salvageable, then re-pack), for testing, or when integrating a small bundle into a repo where the loose-object format is preferable.
Options courantes
| Option | Description |
|---|---|
-n | Dry-run: show what would be unpacked. |
-q | Quiet, no progress. |
-r | Recover what's possible from a damaged pack. |
--strict | Refuse to write objects with broken links. |
Exemples
git unpack-objects < pack-abc.pack
# Explode pack into loose objects
git unpack-objects -r < broken.pack
# Salvage what we can from a damaged pack
git unpack-objects -n < somepack.pack
# Just preview what would be unpacked
Erreurs fréquentes
Unpacking a huge pack creates many tiny files and slows the filesystem. Almost every operational scenario prefers keeping the pack intact. Pair this with git fsck when troubleshooting corruption. git help unpack-objects opens the full manual page with comprehensive coverage of every option and edge case; it remains the authoritative reference whenever the summary on this page leaves a question unanswered. For team workflows, capturing how your project uses this command in a CONTRIBUTING document avoids repeated onboarding questions and keeps everyone aligned on conventions.
Commandes liées
git pack-objects, git verify-pack, git fsck, git gc