Git
Français ▾ Topics ▾ Latest version ▾ git-pack-refs last updated in 2.45.0

NOM

git-pack-refs - Empaquette les têtes et les étiquettes pour un accès efficace au dépôt

SYNOPSIS

git pack-refs [--all] [--no-prune] [--auto] [--include <motif>] [--exclude <motif>]

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.

--auto

Pack refs as needed depending on the current state of the ref database. The behavior depends on the ref format used by the repository and may change in the future.

  • "files": No special handling for --auto has been implemented.

  • "reftable": Tables are compacted such that they form a geometric sequence. For two tables N and N+1, where N+1 is newer, this maintains the property that N is at least twice as big as N+1. Only tables that violate this property are compacted.

--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 .

scroll-to-top