Leçon 16 · Travail quotidien
Corriger un message ou un contenu de commit local
Corrigez une faute de frappe et un message dans un commit de héros privé tout en conservant son ancienne astuce. Découvrez pourquoi la modification remplace l'identité et pourquoi le contenu mis en scène sans rapport doit rester à l'écart.
- Niveau: Intermédiaire
- 9 minutes de lecture
- 5 minutes de vidéo
- Mis à jour
- Avant cette leçon: Ignorez les fichiers et nettoyez le travail non suivi en toute sécurité
Progression enregistrée dans ce navigateur.
La lecture charge la vidéo depuis YouTube (mode de confidentialité amélioré).
Ce que vous apprendrez
- Inspectez le commit en cours de remplacement.
- Séparez le contenu modifié de l’édition des messages uniquement.
- Conservez l’ancien pourboire engagé.
- Vérifiez la nouvelle identité et le parent inchangé.
Avant de commencer
Commencez à partir d'une copie séparée du résultat de la leçon 15, sur un scénario/modification de branche. La page HEADING_DRAFT complète est validée en tant que correctif : hedaing ; l'arborescence de travail est propre et le commit n'est pas publié. sauver/avant de modifier les noms qui correspondent exactement au brouillon.
La vidéo a été enregistrée avec Git 2.52.0 et GitTree 2.0 sur Ubuntu 24.04 : la correction, la modification et le montage des messages uniquement ont été effectués dans l'application ; le projet, sa branche de sauvetage et les contrôles ont fonctionné dans le terminal. Rien n'a été exécuté sur macOS ou Windows, et Ubuntu est le seul système Linux enregistré. Le niveau Git source de GitTree est 2.39.0.
GitTree vous demande de vous connecter ; le plan gratuit couvre ensuite chaque étape ici. Aucun compte fournisseur, Pro/essai, identifiant API ou service Internet n'est nécessaire. Une origine locale nue n'est pas GitLab ou CI. Toutes les identités utilisent example.com ; n'exécutez jamais cette leçon dans une extraction de source.
Effectuez des mutations via GitTree ou le chemin natif à des entrées identiques, pas les deux consécutivement. Une vérification en lecture seule peut suivre l'une ou l'autre. Toute préparation décrite comme un travail de terminal est étiquetée préparation native, jamais une fonctionnalité d'application inventée.
Effets de concept et d'état
Amend écrit un remplacement pour le dernier commit de l'index actuel. Il ne s’agit pas d’ajouter un petit enregistrement de correction à l’ancien commit. Le contenu et le message peuvent changer ensemble, tandis que l'ancien objet peut rester accessible via la référence de secours.
L'édition de messages uniquement ne doit pas inclure silencieusement des modifications par étapes sans rapport. La route Modifier le message de validation… de l'application réécrit les validations/descendants sélectionnés ; il diffère du chemin du compositeur Amend Previous Commit présenté ici.
Ici, le sujet modifié garantit une identité d'objet différente. Même parent ne signifie pas même commit. N'enseignez pas la modification comme une modification inoffensive d'un engagement publié sur lequel d'autres travaux sont déjà basés.
Le nouveau contenu de l'index devient un commit de remplacement ; branche de scénario/HEAD déplace l'ancien C→C′, le parent reste M, travail/index propre. Le sauvetage reste C ; principal/serveur d'origine inchangé.
Préparer l’état exact du projet
Commencez à partir d’une copie ordinaire séparée du projet propre tel que la leçon 15 l’a laissé. Les fonctionnalités originales de Gittree restent préservées ; n'exécutez pas ce scénario dans l'original ou dans une extraction de source. (Un plan antérieur du cours a commencé cette leçon à partir du résultat d'une leçon de fusion ultérieure ; cette leçon n'est pas encore enregistrée, donc la vidéo utilise le projet de la leçon 15 et les mêmes étapes.) Les deux corps de page ci-dessous sont l'index.html du projet avec seul le titre du héros modifié. La signature de la démo Repo-local est désactivée et GitTree Demo <demo@example.com> est l'identité.
Entrées de fichiers complètes
Enregistrez uniquement à la phase nommée ci-dessous. Ce sont des corps UTF-8/LF complets avec une nouvelle ligne finale ; ne collez jamais les clôtures Markdown. Les fichiers exécutables inchangés héritent de l'entrée nommée. Les versions dans des variantes distinctes ne doivent pas écraser l'original.
index.html — HEADING_DRAFT
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>GitTree Features — course demo</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="site-header">
<a href="#main">GitTree Features</a>
</header>
<main id="main">
<section class="hero" aria-labelledby="hero-title">
<p class="eyebrow">GitTree Learn demo project</p>
<h1 id="hero-title">See your work cleary.</h1>
<p id="hero-copy">Choose one change, then check what Git saved.</p>
</section>
<section class="features" aria-labelledby="features-title">
<h2 id="features-title">Follow your work</h2>
<div class="cards">
<article class="feature-card">
<h3>History</h3>
<p>Read commits and branches together.</p>
</article>
<article class="feature-card">
<h3>Changes</h3>
<p>Review the exact content selected for a commit.</p>
</article>
<article class="feature-card">
<h3>Recovery</h3>
<p>Inspect the scope of a recovery point before using it.</p>
</article>
</div>
</section>
</main>
<footer><p>Built by a fictional team for GitTree Learn. Review one change at a time.</p></footer>
<script type="module" src="site.js"></script>
</body>
</html>index.html — HEADING_FIXED
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>GitTree Features — course demo</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="site-header">
<a href="#main">GitTree Features</a>
</header>
<main id="main">
<section class="hero" aria-labelledby="hero-title">
<p class="eyebrow">GitTree Learn demo project</p>
<h1 id="hero-title">See your work clearly, one change at a time.</h1>
<p id="hero-copy">Choose one change, then check what Git saved.</p>
</section>
<section class="features" aria-labelledby="features-title">
<h2 id="features-title">Follow your work</h2>
<div class="cards">
<article class="feature-card">
<h3>History</h3>
<p>Read commits and branches together.</p>
</article>
<article class="feature-card">
<h3>Changes</h3>
<p>Review the exact content selected for a commit.</p>
</article>
<article class="feature-card">
<h3>Recovery</h3>
<p>Inspect the scope of a recovery point before using it.</p>
</article>
</div>
</section>
</main>
<footer><p>Built by a fictional team for GitTree Learn. Review one change at a time.</p></footer>
<script type="module" src="site.js"></script>
</body>
</html>Dans GitTree
Palette : Commande+Maj+P (Ctrl+Maj+P sur Ubuntu) ; tapez la commande exactement nommée et sélectionnez-la. Les actions de référence nommée utilisent le menu contextuel de cette ligne, et non un raccourci de palette sans argument.
- Préparez la branche privée de conscription et de sauvetage comme ci-dessous ; confirmez qu'aucune télécommande ne contient le brouillon.
- Afficher les fichiers → index.html ; enregistrez le HEADING_FIXED complet, en préservant tous les autres contenus de la page.
- Afficher les modifications de travail ; inspectez uniquement le remplacement de titre prévu et le fichier Stage index.html.
- Dans le compositeur, vérifiez Amend Previous Commit ; inspectez le dernier commit en cours de remplacement, et non une sélection de graphique plus ancienne. (Dans cette version, le champ Résumé n'est pas rempli avec l'ancien message ; vous écrivez le nouveau à l'étape suivante.)
- Définir le correctif du résumé : clarifiez le titre du héros. Gardez le contournement push/signoff/hooks et autres comportements facultatifs désactivés ; revoir le contenu mis en scène.
- Soumettez une fois avec Commande+Entrée (Ctrl+Entrée sur Ubuntu) depuis le compositeur ; attendre l'achèvement réel. Ne soumettez pas un deuxième commit ordinaire. L’option Modifier le commit précédent se désactive ensuite.
- Vérifiez que le C′ réel diffère du Rescue C, du même parent, du HEADING_FIXED complet et du travail propre. Désactivez Modifier la validation précédente avant un travail ordinaire ultérieur.
- Alternative au message uniquement, dans une copie séparée contenant toujours le brouillon : cliquez avec le bouton droit sur le brouillon de commit → Edit History → Edit Commit Message…. La boîte de dialogue est intitulée « Modifier le message de » l'identifiant court du commit et indique que le commit et chaque commit situé au-dessus obtiennent de nouveaux identifiants. Remplacez le Message par le sujet exact corrigé et choisissez Save Message. L'arbre et le parent restent les mêmes ; seuls l'identifiant et le message changent. Ne répétez pas cela sur le résultat modifié.
Pour chaque commit ordinaire : le résumé est le sujet indiqué ; Description vide ; Modifier la validation précédente, ignorer les crochets, ajouter une signature par un auteur différent, appuyer après la validation et autoriser la validation vide ; pas de co-auteurs. Mettez en scène uniquement les fichiers nommés, puis validez les modifications dans N fichiers une fois (fichier pour un) ou Commande+Entrée comme alternative. Attendez le vrai résultat. Une leçon qui modifie explicitement ne change que cette option indiquée.
Dans la borne
Dans la copie séparée du résultat de la leçon 15 :
git switch --create scenario/amendPlacez HEADING_DRAFT sur index.html (la vidéo a enregistré le fichier de la leçon dans ~/Downloads et utilise cp ~/Downloads/HEADING_DRAFT.html index.html), puis :
git add -- index.html
git commit --quiet -m "fix: hedaing"
git branch rescue/before-amendEnregistrez l'intégralité du HEADING_FIXED, puis :
git add -- index.html
git commit --quiet --amend --message "fix: clarify the hero heading"
git log -1 --format=%s
git rev-parse HEAD rescue/before-amend HEAD^ rescue/before-amend^
git status --shortSujet observé :
fix: clarify the hero headingLes deux premières sorties SHA diffèrent ; les deux derniers sont d'accord. Le fichier enregistré complet est égal à HEADING_FIXED, travail propre. L'alternative native aux messages uniquement dans un brouillon propre séparé utilise git commit --amend --only -m "fix: clarifier le titre du héros" ; --only évite d'inclure des chemins intermédiaires non liés pour cette tâche de message uniquement. L'opération de reformulation du graphique de l'application est une route distincte basée sur la source ; vérifiez-le dans la version installée.
Résultat
Where you end: Le commit de remplacement indique le correctif : clarifiez le titre du héros et contient le HEADING_FIXED complet ; le parent correspond au parent de l'ancien commit, l'ID diffère ; vieux pourboire sauvé ; propre, inédit.
Erreurs courantes
- Modification avec des fichiers intermédiaires sans rapport.
- Traiter le volet alternatif comme le point de contrôle d'origine.
- Répéter une mutation terminée après le succès de l'application.
Si quelque chose ne va pas
La branche de sauvetage nomme l'ancien projet engagé. Comparez avant de choisir une restauration ; il ne préserve pas les modifications arbitraires non mises en scène. Si les hooks/signatures échouent, inspectez la sortie réelle, ne les contournez pas pour correspondre à la leçon.
Vérifiez votre compréhension
Répondez à chaque question, puis lisez pourquoi. Les questions marquées « Obligatoire » comptent pour terminer la leçon.
0 sur 6 corrects
Répondez correctement aux questions requises pour terminer la leçon.
Vérifié dans ce navigateur.
Pratique
Prouvez le même parent, l'ID d'objet modifié, l'en-tête/message corrigé exactement et l'état propre. Prédisez comment un fichier intermédiaire supplémentaire modifie le contenu du compositeur dans une rediffusion séparée.
Votre propre confirmation : le site ne peut pas voir votre ordinateur.
Pour terminer la leçon, répondez correctement aux questions demandées et confirmez l'exercice pratique.
Récapitulatif
- Amend crée un remplacement.
- L'index contrôle le contenu modifié.
- Le message uniquement est une portée distincte.
En rapport
Termes du glossaire introduits
Modifier — تعديل الإيداع الأخير ; reformuler — إعادة صياغة; commit de remplacement — إيداع بديل.
Transcription vidéo
La narration de la vidéo, repère par repère.
Afficher la transcription
- Commencez par le point de contrôle exact.
- Nommez la branche, indexez et version de travail.
- Préparez uniquement la copie de cours isolée.
- Protéger le brouillon privé avant de le remplacer.
- Enregistrez la correction complète souhaitée.
- Consultez l'index, pas seulement le message.
- Amend remplace le dernier commit réel.
- Écrivez explicitement le sujet corrigé.
- Soumettez le remplacement une seule fois.
- Même parent ne veut pas dire même identité.
- La modification des messages uniquement a une portée distincte.
- Que crée la modification ?
- Les objets Git sont immuables ; le remplacement obtient un nouvel identifiant.
- Que faut-il revoir ?
- Le compositeur modifie utilise l'index et le contexte du dernier commit.
- Parent de C′ corrigé ?
- Le remplaçant occupe la même position ascendante.
- Ajouter une mise en scène sans rapport déposer avant modification : contenu ?
- L'index actuel définit l'arbre de remplacement.
- Le brouillon a été publié : procéder en mode privé ?
- L'identité publiée peut être utilisée par d'autres.
- Quelles preuves sont requises ?
- Vérifiez les deux remplacements l’identité et le contenu prévu.
- Vérifiez le résultat réel, pas seulement un message.
- Prévoyez l’entrée modifiée avant d’agir.
- Préserver le travail utile avant la récupération.
- Prouvez le point de contrôle avant de continuer.
- Conserver le résultat vérifié pour la prochaine étape.