Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.42.1 → 2.43.0 no changes
- 2.42.0 08/21/23
DESCRIPTION
Traditionnellement, des sommets de branches et les étiquettes (collectivement appelés réfs) sont stockés un fichier par réf dans un (sous-)répertoire sous le répertoire $GIT_DIR/refs
. Bien que de nombreux sommets de branche ont tendance à être mis à jour souvent, la plupart des étiquettes et quelques sommets de branche ne sont jamais mis à jour. Lorsqu’un dépôt a des centaines ou des milliers d’étiquettes, ce format un fichier-par-réf gaspille l’espace de stockage et nuit aux performances.
Cette commande est utilisée pour résoudre le problème de stockage et de performance en stockant les réfs dans un seul fichier, $GIT_DIR/packed-refs
. Lorsqu’une réf est absente de la hiérarchie traditionnelle du répertoire $GIT_DIR/refs
, elle est recherchée dans ce fichier et utilisée si trouvée.
Les mises à jour ultérieures des branches créent toujours de nouveaux fichiers sous la hiérarchie des répertoires $GIT_DIR/refs
.
Une pratique recommandée pour traiter un dépôt avec trop de réfs est d’empaqueter ses réfs avec --all
une fois, et exécuter occasionnellement git pack-refs
. Les étiquettes sont par définition fixes et ne sont pas censées changer. Les têtes de branche seront empaquetées avec le premier pack-refs --all
, mais seules les têtes de branche actuellement actives seront dépaquetées, et les prochains pack-refs
(sans -all
) les laisseront dépaquetées.
OPTIONS
- --all
-
La commande par défaut empaquette toutes les étiquettes et réfs qui sont déjà empaquetées, et laisse les autres réfs seuls. C’est parce que les branches sont censées être activement développées et l’emballage de leurs sommets ne contribue pas à la performance. Cette option permet à toutes les réfs d’être empaquetées, à l’exception des réfs cachées, des refs cassées et des réfs symboliques. Utile pour un dépôt avec de nombreuses branches d’intérêt historique.
- --no-prune
-
La commande supprime généralement les réfs libres sous la hiérarchie
$GIT_DIR/refs
après les avoir empaquetées. Cette option indique de ne pas le faire. - --include <motif>
-
Empaquette les réfs correspondant à un motif
glob(7)
. Les répétitions de cette option augmente les motifs inclus. Si une réf est incluse à la fois dans--include
et dans--exclude
,-exclude
a priorité. L’utilisation de--include
annulera l’inclusion par défaut de toutes les étiquettes. Les réfs symboliques et les réfs cassées ne seront jamais empaquetées. Avec--all
, aucune action ne sera réalisée. Utilisez--no-include
pour effacer et réinitialiser la liste des motifs. - --exclude <motif>
-
Ne pas empaqueter les réfs correspondant au motif
glob(7)
donné. Les répétitions de cette option accumulent les motifs d’exclusion. Utilisez--no-exclude
pour effacer et réinitialiser la liste des motifs. Si une réf est déjà empaquetée, la cibler avec--exclude
ne le dépaquettera pas.
Utilisé avec --all
, empaquette seulement les réfs libres qui ne correspondent à aucun des motifs --exclude
fournis.
Utilisé avec --include
, les réfs définies par --include ` , moins celles qui sont fournis à `--exclude
seront empaquetées.
BOGUES
Des documents plus anciens écrits avant l’introduction du mécanisme de références empaquetées peuvent encore dire des choses comme "le fichier .git/refs/heads/<branche> doit exister" alors que cela doit signifier "la branche <branche> existe".
GIT
Fait partie de la suite git[1]
TRADUCTION
Cette page de manuel a été traduite par Jean-Noël Avila <jn.avila AT free DOT fr> et les membres du projet git-manpages-l10n. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le site https://github.com/jnavila/git-manpages-l10n .