Tester les commits non modifiés (non-amended)
Dans cette étape, nous allons créer un nouveau commit sans utiliser le flag --amend
et observer comment il apparaît dans git log
et git reflog
. Cela vous aidera à mieux comprendre comment ces commandes suivent l'historique différemment.
Tout d'abord, ajoutons plus de contenu à notre fichier message.txt
. Nous allons ajouter une nouvelle ligne :
echo "Hello again, Future Me!" >> message.txt
L'opérateur >>
ajoute le texte au fichier existant, au lieu de le remplacer.
Maintenant, vérifions l'état pour voir les modifications :
git status
Vous devriez voir une sortie indiquant que message.txt
a été modifié :
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: message.txt
no changes added to commit (use "git add" and/or "git commit -a")
Ensuite, nous devons préparer (stager) les modifications :
git add message.txt
Et maintenant, créons un nouveau commit sans modifier le précédent :
git commit -m "Add another message"
Vous devriez voir une sortie confirmant le nouveau commit :
[master 1a2b3c4] Add another message
1 file changed, 1 insertion(+)
Maintenant, vérifions à nouveau le git log
:
git log --oneline
Cette fois, vous devriez voir deux commits :
1a2b3c4 (HEAD -> master) Add another message
a1b2c3d Send a message to the future
Les deux commits sont visibles dans le git log
car le deuxième commit a été ajouté au-dessus du premier, prolongeant l'historique de la branche.
Enfin, vérifions le git reflog
:
git reflog
Vous devriez voir une sortie similaire à celle-ci :
1a2b3c4 (HEAD -> master) HEAD@{0}: commit: Add another message
1a2b3c4 (HEAD -> master) HEAD@{1}: commit (amend): Send a message to the future
e4f5g6h HEAD@{2}: commit (initial): Send a message to the future
Remarquez que git reflog
montre toutes les actions : le commit initial, le commit initial modifié (amend) et le nouveau commit que nous venons de créer. Chaque action qui a déplacé HEAD
est enregistrée.
Cette étape démontre que lorsque vous créez un nouveau commit sans --amend
, git log
et git reflog
afficheront le nouveau commit, mais git reflog
conservera toujours l'historique du commit modifié (amend), que git log
n'affiche pas.