Git 🌙
Français ▾ Topics ▾ Latest version ▾ git-replace last updated in 2.44.0

NOM

git-replace - Crée, liste, supprime des référence pour remplacer des objets

SYNOPSIS

git replace [-f] <objet> <remplacement>
git replace [-f] --edit <objet>
git replace [-f] --graft <commit> [<parent>…​]
git replace [-f] --convert-graft-file
git replace -d <objet>…​
git replace [--format=<format>] [-l [<motif>]]

DESCRIPTION

Ajoute une référence replace dans l’espace de nom refs/replace/.

Le nom de la référence replace est le SHA-1 de l’objet qui est remplacé. Le contenu de la référence replace est le SHA-1 de l’objet de remplacement.

L’objet remplacé et l’objet de remplacement doivent être du même type. Cette restriction peut être contournée en utilisant -f.

A moins que le -f ne soit donné, la référence replace ne doit pas encore exister.

Il n’y a aucune autre restriction sur les objets remplacés et de remplacement. Les commits de fusion peuvent être remplacés par des commits non fusionnés et vice versa.

Les références de remplacement seront utilisées par défaut par toutes les commandes Git, à l’exception de celles faisant la traversée d’accessibilité (prune, transfert de paquet et fsck).

Il est possible de désactiver l’utilisation de références de remplacement pour toute commande en utilisant l’option --no-replace-objects juste après git.

Par exemple, si le commit foo a été remplacé par le commit bar :

$ git --no-replace-objects cat-file commit foo

montre des informations sur le commit foo, tandis que :

$ git cat-file commit foo

montre des informations sur le commit bar.

La variable d’environnement GIT_NO_REPLACE_OBJECTS peut être définie pour atteindre le même effet que l’option --no-replace-objects.

OPTIONS

-f
--force

Si un remplaçant existant pour le même objet existe déjà, il sera écrasé (au lieu de provoquer un échec).

-d
--delete

Supprimer les réfs de remplacement existants pour les objets donnés.

--edit <objet>

Modifier le contenu d’un objet de manière interactive. Le contenu existant pour <objet> est mis en forme dans un fichier temporaire, un éditeur est lancé sur le fichier, et le résultat est analysé pour créer un nouvel objet du même type que <objet>. Une réf de remplacement est ensuite créée pour remplacer <objet> par l’objet nouvellement créé. Voir git-var[1] pour plus de détails sur le choix de l’éditeur.

--raw

Lors de l’édition, fournir le contenu de l’objet brut plutôt que le contenu mise en forme pour une édition humaine. Actuellement, cela n’affecte que les arbres, qui seront affichés dans leur forme binaire. Cela rend la modification plus difficile, mais peut aider à réparer un arbre qui est tellement corrompu qu’il ne peut pas être mis en forme. Notez que vous pouvez avoir besoin de configurer votre éditeur pour lire et écrire des données binaires.

--graft <commit> [<parent>…​]

Créez un commit de greffe. Un nouveau commit est créé avec le même contenu que <commit> sauf que ses parents seront devenus [<parent>…​] au lieu des parents de <commit>. Une réf de remplacement est ensuite créée pour remplacer <commit> par le commit nouvellement créé. Utilisez --convert-graft-file pour convertir un fichier $GIT_DIR/info/grafts et utilisez le remplacement des réfs.

--convert-graft-file

Crée des commits de greffe pour toutes les entrées dans $GIT_DIR/info/grafts et supprime ce fichier en cas de succès. L’objectif est d’aider les utilisateurs à abandonner l’utilisation d’un fichier de greffe qui est maintenant obsolète.

-l <motif>
--list <motif>

Liste les réfs de remplacement pour les objets qui correspondent au modèle donné (ou tout si aucun motif n’est donné). Taper "git replace" sans arguments liste également toutes les réfs de remplacement.

--format=<format>

Lors du listage, utiliser le <format> qui peut être soit short, medium ou long. Lorsqu’il est omis, le format par défaut est short.

FORMATS

Les formats suivants sontdisponibles :

  • short : <sha1-remplacé>

  • medium : <sha1-remplacé> → <sha1-de-replacement>

  • long : <sha1-replacé> (<type-replacé>) → <sha1-de-replacement> (<type-de-replacement>)

CRÉATION DES OBJETS DE REMPLACEMENT

git-hash-object[1], git-rebase[1], et git-filter-repo, entre autres commandes git, peuvent être utilisées pour créer des objets de remplacement à partir d’objets existants. L’option --edit peut également être utilisée avec git replace pour créer un objet de remplacement en éditant un objet existant.

Si vous voulez remplacer de nombreux blobs, arbres ou commits qui font partie d’une chaîne de commits, vous pouvez simplement vouloir créer une chaîne de remplacement de commits et ensuite seulement remplacer le commit au sommet de la chaîne cible de commits par le commit au sommet de la chaîne de remplacement des commits.

BOGUES

La comparaison des blobs ou des arbres qui ont été remplacés par ceux qui les remplace ne fonctionnera pas correctement. Et l’utilisation de git reset --hard pour retourner à un commit remplacé déplacera la branche vers le commit de remplacement au lieu du commit remplacé.

Il peut y avoir d’autres problèmes dans l’utilisation de git rev-list liés aux objets en attente.

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