Comment modifier le dernier commit dans Git (message, fichiers, auteur et annulation)
Que vous ayez repéré une faute de frappe dans votre message de validation, oublié de transférer un fichier, commis un secret par erreur ou utilisé le mauvais e-mail de l'auteur, git commit --amend remplace proprement le commit tip sans encombrer votre branche avec des commits « corriger une faute de frappe ».
Écrit par Kodmora
L'éditeur de logiciels derrière GitTree
- Commits
- Indexation
- Historique de validation
- Annuler et récupérer
- Rebase
Sur cette page
Pour corriger le commit le plus récent sur votre branche actuelle, exécutez git commit --amend. Si rien n'est préparé, Git remplace le commit par votre message mis à jour ; si vous effectuez d'abord de nouvelles modifications, Git intègre ces modifications dans la validation et vous permet de conserver le message existant avec --no-edit ou de le réécrire en place. Vous préférez un flux de travail visuel ? Dans GitTree sur macOS, Windows et Linux, activez Modifier la validation précédente dans le panneau de validation (ou cliquez avec le bouton droit sur la validation supérieure du graphique et choisissez Modifier le message de validation…) pour pré-remplir le message, transférer ou annuler la validation de lignes individuelles, afficher un avertissement de branche distante avant de réécrire l'historique poussé et récupérer à tout moment en un seul clic Annuler.
Référence rapide : chaque commande git commit --amend
Choisissez la commande exacte qui correspond à ce qui ne va pas avec votre dernier commit ou passez à la section détaillée ci-dessous pour les cas extrêmes, les hooks, les commits signés et les alternatives visuelles.
| Ce que tu veux réparer | Commande à exécuter | Qu'arrive-t-il au commit |
|---|---|---|
| Correction d'une faute de frappe dans le dernier message de commit (en ligne) | git commit --amend -m "New message" | Remplace HEAD par un nouveau commit contenant le nouveau message et toutes les modifications actuellement en cours |
| Modifier un message de validation multiligne dans votre éditeur | git commit --amend | Ouvre votre éditeur Git configuré avec le sujet et le corps existants pré-remplis |
| Reformulez uniquement le message (ignorez les fichiers préparés) | git commit --amend --only -m "New message" | Réécrit le message de validation de HEAD tout en laissant votre zone de préparation actuelle intacte pour la prochaine validation |
| Ajouter un fichier oublié et conserver le même message | git add <file> && git commit --amend --no-edit | Plie <file> dans le dernier commit sans ouvrir l'éditeur de texte |
| Ajouter des lignes ou des morceaux spécifiques au dernier commit | git add -p && git commit --amend --no-edit | Vous permet de indexer les morceaux choisis de manière interactive, puis de regrouper uniquement ces morceaux en HEAD |
| Pliez tous les fichiers suivis modifiés dans le dernier commit | git commit -a --amend --no-edit | Organise chaque fichier suivi modifié ou supprimé et modifie HEAD en une seule étape (les fichiers non suivis sont ignorés). |
| Supprimer un fichier validé par erreur (conserver sur disque) | git restore --source=HEAD~1 --staged <file> && git commit --amend --no-edit | Rétablit <file> dans l'index en HEAD~1 tout en gardant votre fichier d'arborescence de travail local intact |
| Corrigez le nom et l'e-mail de l'auteur lors du dernier commit | git commit --amend --reset-author --no-edit | Met à jour l'auteur du commit (et l'horodatage) pour qu'il corresponde à votre configuration actuelle user.name et user.email |
| Mettre à jour une branche après avoir modifié un commit poussé | git push --force-with-lease --force-if-includes | Met à jour en toute sécurité la branche distante uniquement si aucun coéquipier n'a poussé de nouveaux commits et que votre reflog local inclut l'astuce distante |
Annuler un git commit --amend accidentel | git reset --soft HEAD@{1} | Ramène le pointeur de branche vers le commit de pré-modification tout en gardant toutes les modifications supplémentaires par étapes |
Ce que git commit --amend fait réellement sous le capot
Chaque hachage de validation Git est une somme de contrôle cryptographique (SHA-1 ou SHA-256) calculée à partir de cinq éléments de données : l'instantané de l'arbre racine, le(s) hachage(s) de validation parent, le nom/l'e-mail/l'horodatage de l'auteur, le nom/l'e-mail/l'horodatage du commissaire et le message de validation. Modifiez ne serait-ce qu'un seul caractère dans le message (ou l'horodatage du committer une seconde plus tard) et le hachage résultant est complètement différent.
# Before git commit --amend:
A --- B --- C <-- main (HEAD)
# After git commit --amend:
A --- B --- C' <-- main (HEAD)
\
C (still in git reflog as HEAD@{1} until garbage collection)Lorsque vous exécutez git commit --amend, Git prend tout ce qui se trouve actuellement dans la zone de transit (l'index), le combine avec le(s) pointeur(s) parent(s) de C (B), écrit un nouvel objet de validation C' et met à jour votre référence de branche actuelle pour pointer vers C'. Le commit d'origine C n'est pas supprimé immédiatement : il reste enregistré dans votre reflog local (HEAD@{1}) pendant au moins 30 à 90 jours (gc.reflogExpireUnreachable), c'est pourquoi une modification accidentelle est toujours récupérable localement, soit via git reflog, soit via les outils Annuler et Rétablir et Lost & Found de GitTree.
1. Modifiez le dernier message de validation
Si vous venez de commettre et avez immédiatement remarqué une faute de frappe, un mauvais numéro de problème Jira/GitHub ou un préfixe Conventional Commits manquant (feat:, fix:, chore:), vérifiez d'abord git status pour savoir si quelque chose est indexé.
Passez un nouveau message d'une ligne ou de plusieurs paragraphes avec -m
Pour remplacer le message directement depuis le terminal sans lancer d'éditeur, passez -m. Vous pouvez enchaîner plusieurs indicateurs -m pour créer une ligne d'objet et des paragraphes de corps :
# Replace the commit subject inline
git commit --amend -m "fix(auth): validate refresh token expiry before rotation"
# Replace both the subject line and body paragraph
git commit --amend \
-m "fix(auth): validate refresh token expiry before rotation" \
-m "Prevents expired tokens from issuing a new session when clock skew exceeds 30s."Modifiez le message existant dans votre éditeur de texte
Lorsque votre commit contient déjà une description détaillée sur plusieurs lignes, des bandes-annonces (Co-authored-by:, Signed-off-by:) ou des références de problème que vous ne souhaitez pas retaper, exécutez git commit --amend sans -m :
git commit --amendGit ouvre votre core.editor configuré (Vim, Nano, VS Code, Zed, etc.) avec le message de validation actuel préchargé. Enregistrez et fermez le fichier pour écrire le commit modifié. Si vous changez d'avis pendant que l'éditeur est ouvert, supprimez l'intégralité du message de validation (en laissant le fichier vide) et enregistrez : Git abandonne la modification avec Aborting commit due to empty commit message et laisse HEAD intact.
2. Ajoutez des fichiers oubliés ou des lignes spécifiques au dernier commit
Oublier d'enregistrer un fichier, d'effectuer un test ou d'exécuter votre formateur avant de valider est la raison la plus courante pour laquelle les développeurs recherchent --amend. Effectuez d'abord les modifications manquantes, puis modifiez-les avec --no-edit afin que Git conserve le message de validation existant sans ouvrir d'éditeur :
# Stage the forgotten file (or files)
git add src/auth/token-validator.test.ts
# Fold the staged file into the last commit and keep the existing message
git commit --amend --no-editIndexez uniquement des lignes ou des morceaux spécifiques avant de les modifier
Que se passe-t-il si votre arborescence de travail contient à la fois le correctif de 3 lignes qui appartient au commit précédent *et* 40 lignes de journalisation de débogage ou de travail pour votre prochaine fonctionnalité ? N'exécutez pas git add . ou git commit -a --amend. Au lieu de cela, indexez uniquement les morceaux ou les lignes exacts qui appartiennent au commit précédent en utilisant le mode patch (couvert en détail dans notre guide sur git add -p et la indexation de lignes spécifiques) :
# Choose y/n/s (split) for each changed hunk
git add -p src/auth/token-validator.ts
# Verify what is staged vs what stays in the working tree
git diff --staged
# Amend the last commit with only the staged hunks
git commit --amend --no-editDans GitTree, vous n'avez jamais à vous battre avec le fractionnement des morceaux de terminal (s, e) pour ce faire : cliquez sur n'importe quel fichier dans Modifications non indexées, sélectionnez les lignes exactes ou cliquez sur Stage Hunk dans la comparaison côte à côte ou en ligne, et activez Modifier la validation précédente. Consultez notre Guide des différences Git pour voir comment l'inspection des différences préparées et non préparées empêche le code accidentel de se glisser dans une validation modifiée.

3. Supprimez un fichier validé par erreur (sans le supprimer du disque)
Supposons que vous ayez exécuté git add . et que vous ayez accidentellement validé un fichier .env.local, un artefact de build volumineux ou un fichier appartenant à une demande d'extraction distincte. La façon dont vous le supprimez de HEAD dépend du fait que le fichier existait dans le commit avant HEAD (HEAD~1) ou qu'il a été récemment ajouté dans HEAD.
Cas A : Supprimer un fichier nouvellement ajouté du dernier commit (conserver le fichier local)
Utilisez git rm --cached pour supprimer le fichier de l'index intermédiaire tout en laissant le fichier physique sur votre disque, puis modifiez :
# Remove the file from the index only (leaves the file on disk)
git rm --cached .env.local
# Optional: add it to .gitignore so it never gets staged again
echo ".env.local" >> .gitignore
git add .gitignore
# Rewrite the last commit without .env.local
git commit --amend --no-editCas B : rétablir les modifications vers un fichier suivi lors de la dernière validation (conserver les modifications locales)
Si <file> a déjà été suivi dans HEAD~1 et que vous y avez accidentellement inclus des modifications dans HEAD, n'utilisez pas git rm --cached (cela enregistrerait une suppression de fichier dans HEAD !). Au lieu de cela, restaurez l'entrée d'index de ce fichier à partir de HEAD~1 :
# Reset only the staged index state of <file> back to HEAD~1
git restore --source=HEAD~1 --staged src/config/database.ts
# Amend HEAD: the commit no longer touches database.ts, and your local edits stay in the working tree
git commit --amend --no-editSi vous souhaitez plutôt supprimer les modifications locales indésirables ou nettoyer complètement les fichiers non suivis, consultez comment ignorer les modifications et nettoyer les fichiers non suivis dans Git et comment restaurer un fichier supprimé dans Git.
4. Modifiez l'auteur, l'e-mail ou l'horodatage du dernier commit
Lorsque vous effectuez une validation sur un nouvel ordinateur portable avant de définir user.email, ou lorsque vous effectuez une validation dans un référentiel de travail alors que votre adresse e-mail personnelle GitHub est configurée globalement, la validation enregistre la mauvaise identité. git commit --amend peut réécrire les métadonnées du commit sans toucher à un seul fichier.
# Option 1: Set an explicit author name and email on the last commit
git commit --amend --author="Jane Doe <jane@company.com>" --no-edit
# Option 2: Update git config first, then reset the commit author to match
git config user.name "Jane Doe"
git config user.email "jane@company.com"
git commit --amend --reset-author --no-edit
# Option 3: Amend the author date as well
git commit --amend --date="2026-11-11T14:30:00+02:00" --no-edit5. Comment modifier en toute sécurité un commit que vous avez déjà poussé
Dès que vous modifiez un commit qui a déjà été poussé vers origin, votre branche locale et la branche de suivi à distance (origin/<branch>) divergent : votre branche locale a C', tandis que origin a toujours C. Les deux commits partagent le parent B.
Si la branche est votre propre branche de fonctionnalité ou de demande d'extraction, mettez à jour le dépôt distant en toute sécurité avec --force-with-lease (et --force-if-includes dans Git 2.30+) :
# Safely replace the remote branch tip with your amended commit
git push --force-with-lease --force-if-includes origin HEAD- Pourquoi `--force-with-lease` au lieu de `--force` : Simple
git push --forceécrase aveuglément la branche distante, effaçant tous les commits poussés par un coéquipier ou un bot CI depuis votre dernière récupération.--force-with-leasevérifie queorigin/<branch>pointe toujours vers le commit SHA exact stocké dans votre référence locale de suivi à distance ; si quelqu'un d'autre a poussé entre-temps, Git rejette la poussée au lieu de perdre son travail. - Ce que `--force-if-includes` ajoute : Si la récupération automatique en arrière-plan est activée, votre référence de suivi à distance peut être mise à jour avant votre envoi.
--force-if-includesvérifie que le commit à la pointe de la branche distante a bien été intégré à votre reflog local avant d'autoriser la réécriture. - Lorsque vous êtes sur `main` ou sur une branche partagée : Ne pas modifier et forcer le push d'une branche partagée sur laquelle d'autres développeurs basent leur travail. Au lieu de cela, laissez le commit intact et envoyez un nouveau commit de correctif, ou inversez-le proprement avec
git revert(voir notre guide pour annuler les commits et les fusions et le Tutoriel de récupération des erreurs poussées). - Besoin de configurer d'abord votre branche de suivi ? Voir comment définir une branche en amont dans Git.
6. Que se passe-t-il si le commit que vous devez modifier n'est PAS le dernier commit ?
git commit --amend ne réécrit que HEAD (le commit de pointe). Lorsque la faute de frappe ou la modification manquante appartient à HEAD~2 ou à trois commits en arrière, vous disposez de deux options propres, sans cacher ni sélectionner manuellement :
Option 1 : autosquash CLI rapide avec git commit --fixup
Préparez le correctif, créez un commit --fixup ciblant le SHA de l'ancien commit (ou --fixup=amend:<sha> pour modifier également son message) et exécutez git rebase -i --autosquash :
# 1. Stage the changes meant for the older commit (e.g. a1b2c3d)
git add src/api/client.ts
# 2. Create a fixup commit targeting a1b2c3d
git commit --fixup=a1b2c3d
# 3. Autosquash the fixup commit straight into a1b2c3d
GIT_SEQUENCE_EDITOR=: git rebase -i --autosquash a1b2c3d~1Option 2 : rebasement visuel interactif dans GitTree
Au lieu de copier les SHA et de modifier les fichiers de tâches de rebase dans le terminal, lisez notre guide GUI de rebase interactif complet et notre guide de rebase de branche. Dans le planificateur Interactive Rebase et Reword, Squash and Drop de GitTree, cliquez avec le bouton droit sur n'importe quelle validation plus ancienne dans le graphique, choisissez Interactive Rebase from Here…, basculez cette validation vers Reword ou faites-y glisser une validation de correctif vers Fixup/Squash, et appliquez-la en un seul clic.

7. Comment annuler un git commit accidentel --amend
Avez-vous exécuté git commit --amend alors que des fichiers involontaires étaient transférés, ou avez-vous accidentellement écrasé un message de validation dont vous aviez besoin ? Étant donné que Git enregistre chaque mouvement de HEAD dans le reflog local, votre commit de pré-modification est toujours en sécurité à HEAD@{1}.
# 1. Inspect the reflog to see the amend and the commit before it
git reflog -n 5
# e9f8d7c (HEAD -> feature) HEAD@{0}: commit (amend): feat: add billing webhook
# 4a3b2c1 HEAD@{1}: commit: feat: add billing webhook
# 2. Restore the branch to the pre-amend commit and keep any extra changes staged
git reset --soft HEAD@{1}L'utilisation de git reset --soft HEAD@{1} replace votre pointeur de branche sur le commit d'origine (4a3b2c1) et laisse la différence entre le commit modifié et le commit d'origine effectué dans votre index : rien dans votre arbre de travail n'est perdu. Pour une analyse approfondie des réinitialisations et de la récupération de reflog de soft, mixed et hard, lisez Git reset --soft vs --mixed vs --hard, comment annuler la réinitialisation, le rebase ou le commit de git avec reflog et comment récupérer les caches abandonnés et les commits en suspens.
Quand utiliser git commit --amend vs reset, revert ou rebase -i
Utilisez cette matrice de décision chaque fois que vous avez besoin de corriger l'historique afin de choisir la commande qui correspond à la position de votre commit et si vos coéquipiers l'ont exécutée :
| Commande | Validation cible | Réécrit SHA ? | Mieux utilisé quand |
|---|---|---|---|
git commit --amend | Dernier commit (HEAD) uniquement | Oui | Vous souhaitez reformuler le dernier message de validation, intégrer les modifications oubliées ou corriger les métadonnées de l'auteur sur une branche locale ou personnelle. |
git reset --soft HEAD~1 | Dernier commit (HEAD) | Oui | Vous souhaitez annuler complètement la validation de HEAD tout en conservant toutes ses modifications par étapes afin de pouvoir les diviser en deux ou plusieurs validations distinctes. |
git rebase -i <base> | Tout commit dans la plage | Oui | Vous devez modifier, reformuler, écraser, corriger, réorganiser ou supprimer un commit datant de plus de HEAD avant de fusionner votre PR. |
git revert <sha> | Tout commit (HEAD ou plus ancien) | Non (ajoute un nouveau commit) | Le commit est déjà sur main ou sur une branche partagée où la poussée forcée est bloquée ou pourrait perturber les coéquipiers |
Comment modifier le dernier commit dans GitTree (étape par étape)
Ouvrez les modifications et inspectez votre différence par étapes
Dans GitTree sur macOS, Windows et Linux, ouvrez Modifications dans la barre latérale. Si vous souhaitez uniquement modifier le message du dernier commit, laissez Staged Changes vide ; si vous souhaitez intégrer un fichier oublié ou des lignes spécifiques, placez uniquement ces fichiers, morceaux ou lignes dans la comparaison côte à côte.
Activer Modifier le commit précédent (1)
Activez Modifier la validation précédente au-dessus de la zone de message de validation (ou appuyez sur
Cmd+Shift+Msur macOS /Ctrl+Shift+Msur Windows et Linux). GitTree pré-remplit le résumé et la description deHEADlorsque la boîte de message est vide. SiHEADa déjà été transmis à votre dépôt distant, GitTree affiche une bannière d'avertissement explicite avant de réécrire l'historique.Affinez le message (ou le brouillon avec AI) et cliquez sur Modifier le commit (2)
Modifiez le sujet ou le corps, ou cliquez sur le bouton scintillant dans GitTree Pro pour laisser Nour et votre propre agent de codage CLI (Claude Code, Codex ou Gemini CLI) rédiger un message de validation mis à jour à partir de la différence complète modifiée, puis cliquez sur Modifier la validation.
Annulez en un clic ou poussez en toute sécurité avec Force Push (With Lease)
Vous avez changé d'avis ? Cliquez sur Annuler dans la barre d'outils supérieure (
Cmd+Z/Ctrl+Z) pour restaurer la validation de pré-modification d'origine à partir de l'instantané de sécuritérefs/ogt/trashde GitTree, ou inspectez l'ancienne validation à tout moment dans Lost & Found. Si le commit était déjà sur votre branche de fonctionnalités distante, utilisez Force Push (With Lease)… dans la barre d'outils.


Comment GitTree élimine toutes les erreurs courantes de git commit --amend
La plupart des accidents de modification de ligne de commande se produisent parce que le terminal cache trois éléments de contexte critiques jusqu'à ce qu'il soit trop tard : ce qui se trouve déjà dans votre zone de transit, si HEAD a déjà été poussé vers origin et quel était le SHA de validation précédent avant que vous ne l'écrasiez. GitTree résout chacun de ces modes de défaillance directement dans l'interface :
- Inspection des différences en direct et sans indexées : Avant de cliquer sur Modifier la validation, la liste Modifications par étapes se trouve directement au-dessus de la zone de validation afin que vous ne puissiez jamais plier accidentellement des fichiers à moitié terminés dans
HEAD. Vous pouvez indexer ou annuler la indexation de lignes, de morceaux ou de fichiers individuels en un seul clic (Stage Files, Hunks and Lines). - Détection de validation poussée et protection contre la transmission forcée avec bail : Lorsque
HEADest déjà sur la branche distante, GitTree vous avertit directement dans le panneau de validation *avant* de modifier et associe le flux de travail avec Forcer la poussée (avec bail)… afin de ne jamais écraser la poussée d'un coéquipier. - Reformulation par clic droit et création rapide `fixup!`/`amend!` : Vous souhaitez reformuler
HEADsans toucher à vos fichiers préparés ? Cliquez avec le bouton droit sur le premier commit dans le graphique de commit et choisissez Modifier le message de commit…. Besoin de corriger un ancien commit ? Cliquez avec le bouton droit sur cet ancien commit dans le graphique pour créer un commitfixup!ouamend!ou ouvrez Interactive Rebase. - Instantanés de sécurité automatiques (`refs/ogt/trash`) et annulation en un clic : Avant d'exécuter l'une des 19 opérations de modification de l'historique, y compris Modification d'un commit, rebase interactif, réinitialisation, suppression de branche et suppression, GitTree enregistre un instantané local sous
refs/ogt/trash. En cliquant sur Annuler (Cmd+Z/Ctrl+Z), vous restaurez immédiatement votre état exact de validation et de pré-modification. - Visuel Lost & Found & Built-in Terminal : Même si vous avez modifié à partir du terminal intégré ou il y a des semaines, Lost & Found fait apparaître des commits inaccessibles et remplacés avec leurs différences complètes afin que vous puissiez les restaurer, les sélectionner ou les créer sans analyser la sortie brute
git reflog. - Git Hooks, Secret Warnings & AI Commit Messages : GitTree exécute les
pre-commitetcommit-msgGit hooks de votre référentiel, vérifie les différences par étapes pour les clés API accidentelles et (dans GitTree Pro) permet à Nour de générer des messages de validation précis à l'aide de votre propre agent de codage local.




Questions fréquemment posées
Est-ce que git commit --amend modifie le hachage SHA de validation ?
Oui. Les commits Git sont immuables, donc git commit --amend crée un tout nouvel objet de commit avec un nouveau hachage SHA-1 (ou SHA-256) qui partage le même parent que le commit qu'il remplace, puis déplace votre pointeur de branche vers le nouveau commit. Le commit remplacé reste dans votre git reflog (HEAD@{1}) local jusqu'à ce que le garbage collection Git expire les objets inaccessibles.
Comment modifier le dernier commit sans changer son message de commit ?
Organisez vos modifications supplémentaires avec git add <file> (ou git add -p), puis exécutez git commit --amend --no-edit. L'indicateur --no-edit indique à Git de réutiliser le message de validation existant de HEAD sans ouvrir votre éditeur de texte. Dans GitTree, l'activation de Modifier la validation précédente remplit automatiquement le résumé et la description de la validation précédente afin que vous puissiez cliquer immédiatement sur Modifier la validation.
Comment modifier uniquement le dernier message de validation alors que j'ai déjà d'autres fichiers préparés ?
Exécutez git commit --amend --only -m "New commit message" (ou git commit --amend -o). L'indicateur --only demande à Git de modifier HEAD en utilisant uniquement l'arborescence de fichiers déjà enregistrée dans HEAD, en laissant vos fichiers actuellement préparés intacts dans l'index pour votre prochain commit. Dans GitTree, vous pouvez également cliquer avec le bouton droit sur la première validation du graphique et choisir Modifier le message de validation….
Puis-je modifier un commit après l'avoir déjà transféré vers GitHub, GitLab ou Bitbucket ?
Oui, s'il s'agit de votre propre branche de fonctionnalités : modifiez le commit localement, puis exécutez git push --force-with-lease --force-if-includes (ou utilisez Force Push (With Lease)… dans GitTree) afin que Git mette à jour la branche distante uniquement si personne d'autre n'a poussé de nouveaux commits. N'exécutez pas git pull après avoir modifié un commit poussé et évitez de modifier des commits sur des branches partagées comme main – utilisez plutôt git revert ici.
Comment supprimer un fichier du dernier commit sans le supprimer de mon ordinateur ?
Si le fichier a été récemment ajouté lors du dernier commit, exécutez git rm --cached <file> suivi de git commit --amend --no-edit. Si le fichier existait déjà dans HEAD~1 et que vous souhaitez uniquement supprimer les modifications apportées dans HEAD, exécutez git restore --source=HEAD~1 --staged <file> puis git commit --amend --no-edit. Les deux commandes conservent votre fichier local intact dans l’arborescence de travail.
Comment annuler un git commit --amend si j'ai fait une erreur ?
Exécutez git reset --soft HEAD@{1} dans le terminal. Cela ramène votre pointeur de branche au commit exact HEAD pointé juste avant la modification tout en gardant toutes les modifications nouvellement ajoutées par étapes. Dans GitTree, cliquez simplement sur Annuler dans la barre d'outils (Cmd+Z sur macOS ou Ctrl+Z sur Windows et Linux) ou ouvrez Lost & Found pour restaurer la validation de pré-modification.
Est-ce que git commit --amend exécute les hooks pre-commit et commit-msg ou conserve les signatures GPG/SSH ?
Oui : git commit --amend déclenche les hooks pre-commit et commit-msg comme un commit normal (passez --no-verify/-n pour les contourner si nécessaire). Étant donné que la modification crée un nouvel objet de validation, toute signature GPG ou SSH sur la validation d'origine est remplacée ; si vous avez activé commit.gpgsign dans Git ou dans GitTree Préférences > Commit Signing, Git re-signe automatiquement le commit modifié.
Comment puis-je modifier un commit qui remonte à deux ou trois commits dans l'historique ?
git commit --amend ne modifie que HEAD. Pour modifier un ancien commit à partir de la CLI, préparez votre correctif, exécutez git commit --fixup=<sha> (ou --fixup=amend:<sha>) et exécutez git rebase -i --autosquash <sha>~1. Dans GitTree, cliquez avec le bouton droit sur l'ancien commit dans le graphique de commit et choisissez Interactive Rebase from Here… pour le reformuler, le modifier ou l'écraser visuellement.
Sources
Les allégations concernant d'autres produits ont été vérifiées par rapport à leurs pages officielles sur 11 novembre 2026. Les prix et les fonctionnalités changent ; les pages des fournisseurs sont la source de vérité.
- Documentation Git — git-commit (--amend, --no-edit, --only, --reset-author)
- Pro Git Book — 7.6 Git Tools : réécriture de l'historique (modification du dernier commit)
- Documentation Git — git-push (--force-with-lease et --force-if-includes)
- Documentation Git — git-restore (--source et --staged)
- Documentation Git — git-reflog (récupération des commits avant modification)