git commit --amend
Commit amend
Llicència: CC BY-NC-SA 4.0
(Reconeixement - NoComercial - CompartirIgual) 🅭
Amend
L'opció git commit --amend
permet corregir canvis a l'últim commit realitzat.
Permet modificar el missatge de l'últim commit, afegir nous fitxers o afegir
nous canvis els fitxers del repositori, inclòs els que han segut modificats en aquest últim commit.
El funcionament d'aquesta ordre consisteix en crear un nou commit amb els canvis de l'Àrea de Preparació
i els canvis del commit anterior. A més, el nou commit substitueix l'anterior.
Advertència
Cal tindre en compte que el commit original serà substituït pel nou commit ,
però si aquest ja ha estat publicat al repositori remot o té altres referències,
aquestes referències no seran modificades i es podrien produir problemes
en el repositori.
Figura 1. Funcionament de git commit --amend
.
La sintaxi és:
git commit --amend [ -m <missatge>]
-m <missatge>
: Permet especificar un nou missatge per al commit.
Preparació del repositori
Inicialitzem un repositori amb un fitxer README.md
i realitzem el primer commit.
Danger
Crea el nou repositori en una carpeta independent per evitar
problemes amb els exemples i exercicis anteriors.
jpuigcerver@fp : ~ $ mkdir -p ~/git_amend
jpuigcerver@fp : ~ $ cd ~/git_amend
jpuigcerver@fp : ~/git_amend $ git init
Initialized empty Git repository in ~/git_amend/.git/
jpuigcerver@fp : ~/git_amend (main) $ git branch -m main
jpuigcerver@fp : ~/git_amend (main) $ echo "# Git amend" > README.md
jpuigcerver@fp : ~/git_amend (main) $ git add README.md
jpuigcerver@fp : ~/git_amend (main) $ git commit -m "Commit inicial"
[main (root-commit) c73703f] Commit inicial
1 file changed, 1 insertion(+)
create mode 100644 README.md
jpuigcerver@fp : ~/git_amend (main) $ echo "- Canvi A" >> README.md
jpuigcerver@fp : ~/git_amend (main) $ git commit -a -m "Canvi A"
[main 4f61eca] Canvi A
1 file changed, 1 insertion(+)
jpuigcerver@fp : ~/git_amend (main) $ echo "- canvi B" >> README.md
jpuigcerver@fp : ~/git_amend (main) $ git commit -a -m "Canvi C"
[main 348d5ee] Canvi C
1 file changed, 1 insertion(+)
jpuigcerver@fp : ~/git_amend (main) $ git lga
* 348d5ee - (0 seconds ago) Canvi C - Joan Puigcerver (HEAD -> main)
* 4f61eca - (0 seconds ago) Canvi A - Joan Puigcerver
* c73703f - (0 seconds ago) Commit inicial - Joan Puigcerver
Exemple: Canviar el missatge de l'últim commit
Vegem que el missatge de l'últim commit Canvi C no és correcte
i volem canviar-lo a Canvi B .
jpuigcerver@fp : ~/git_amend (main) $ git lga
* 348d5ee - (0 seconds ago) Canvi C - Joan Puigcerver (HEAD -> main)
* 4f61eca - (0 seconds ago) Canvi A - Joan Puigcerver
* c73703f - (0 seconds ago) Commit inicial - Joan Puigcerver
jpuigcerver@fp : ~/git_amend (main) $ git commit --amend -m "Canvi B"
[main b1a44c4] Canvi B
Date: Tue Jan 21 12:38:11 2025 +0100
1 file changed, 1 insertion(+)
jpuigcerver@fp : ~/git_amend (main) $ git lga
* b1a44c4 - (0 seconds ago) Canvi B - Joan Puigcerver (HEAD -> main)
* 4f61eca - (0 seconds ago) Canvi A - Joan Puigcerver
* c73703f - (0 seconds ago) Commit inicial - Joan Puigcerver
jpuigcerver@fp : ~/git_amend (main) $ git show
commit b1a44c479806f8b538ebc0a86950e7533d9fe471
Author: Joan Puigcerver <j.puigcerveribanez@edu.gva.es>
Date: Tue Jan 21 12:38:11 2025 +0100
Canvi B
diff --git a/README.md b/README.md
index 927b2f6..99116bf 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
# Git amend
- Canvi A
+- canvi B
Exemple: Modificar els canvis de l'últim commit
A més, vegem que el text del fitxer README.md
no és correcte
i volem canviar el text "canvi" a majúscules.
jpuigcerver@fp : ~/git_amend (main) $ cat README.md
# Git amend
- Canvi A
- canvi B
jpuigcerver@fp : ~/git_amend (main) $ code README.md # (1)!
jpuigcerver@fp : ~/git_amend (main) $ git diff
diff --git a/README.md b/README.md
index 99116bf..47cf8c5 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
# Git amend
- Canvi A
-- canvi B
+- Canvi B
jpuigcerver@fp : ~/git_amend (main) $ git add README.md
jpuigcerver@fp : ~/git_amend (main) $ git commit --amend --no-edit # (2)!
[main 290f771] Canvi B
Date: Tue Jan 21 12:38:11 2025 +0100
1 file changed, 1 insertion(+)
jpuigcerver@fp : ~/git_amend (main) $ git lga
* 290f771 - (0 seconds ago) Canvi B - Joan Puigcerver (HEAD -> main)
* 4f61eca - (0 seconds ago) Canvi A - Joan Puigcerver
* c73703f - (0 seconds ago) Commit inicial - Joan Puigcerver
jpuigcerver@fp : ~/git_amend (main) $ git show
commit 290f771141eff61f5363beb24589da58550b466a
Author: Joan Puigcerver <j.puigcerveribanez@edu.gva.es>
Date: Tue Jan 21 12:38:11 2025 +0100
Canvi B
diff --git a/README.md b/README.md
index 927b2f6..47cf8c5 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
# Git amend
- Canvi A
+- Canvi B
Editem el fitxer README.md
manualment a través de l'editor de text.
L'opció --no-edit
permet deixar el missatge del commit original.
Bibliografia
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent
a la pàgina web .
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.