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.44.1 → 2.47.0 no changes
- 2.44.0 02/23/24
- 2.43.1 → 2.43.5 no changes
- 2.43.0 11/20/23
- 2.24.1 → 2.42.3 no changes
- 2.24.0 11/04/19
- 2.18.1 → 2.23.4 no changes
- 2.18.0 06/21/18
- 2.10.5 → 2.17.6 no changes
- 2.9.5 07/30/17
- 2.2.3 → 2.8.6 no changes
- 2.1.4 12/17/14
- 2.0.5 12/17/14
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 .