"Git commit –amend -c <commit>" no guarda cambios

Tengo un montón de commit de git que necesitan ser modificados. No he presionado ninguno de ellos todavía, simplemente lo he estado haciendo:

git add . git commit -m "message 1" git add . git commit -m "message 2" git add . git commit -m "message 3" git add . git commit -m "message 4" 

Ahora bash agregar una línea a todos estos commits

Pensé que lo harías de esta manera:

1) Obtenga los numbers de confirmación:

 $] git log commit 931824f116637cf0f4d7dea98828f9cdfc6b9157 Author: ... Date: Tue Feb 4 17:30:19 2014 -0800 message 1 commit 726adac71a0d8fdac4f62663e6081f1e784e4805 Author: ... Date: Tue Feb 4 16:25:17 2014 -0800 message 2 commit d8aab763f2d2603fb1935648f1ffe80e26039209 Author: ... Date: Tue Feb 4 10:53:19 2014 -0800 message 3 commit 931824f116637cf0f4d7dea98828f9cdfc6b9157 Author: ... Date: Tue Feb 4 17:30:19 2014 -0800 message 4 

2) Haz "git commit –amend -c [commit number]"

 git commit --amend -c 931824f116637cf0f4d7dea98828f9cdfc6b9157 git commit --amend -c 726adac71a0d8fdac4f62663e6081f1e784e4805 git commit --amend -c d8aab763f2d2603fb1935648f1ffe80e26039209 git commit --amend -c 931824f116637cf0f4d7dea98828f9cdfc6b9157 

3) Cuando aparece el editor , escribo "i" para insert, luego agrego algo de text al post, luego escribo ": wq" para save y salir …

Pero luego el editor no guarda los cambios que he hecho en los posts de confirmación … Hago "git log" y ¡el post aún se ve igual ! Todavía dice "post 1" aunque lo cambié para que fuera "post 1 más text" …

Cuando vuelvo a ejecutar "git commit –amend …" para el mismo command, todavía dice "post 1", también … por lo que parece que no ha tenido ningún efecto.

¿Algo que estoy haciendo mal? Tengo los "derechos" correctos para escribir en los files 🙁

No puede cambiar las confirmaciones existentes. Eso es imposible.

Lo que git commit --amend realidad hace, es que crea una nueva confirmación que es una copy de tu última confirmación, también conocida como HEAD, con los cambios que especifiques.

Este nuevo compromiso reemplaza su HEAD actual.

El parámetro -c especifica otra confirmación para copyr el post y editarlo en un editor. No afecta ese otro compromiso de ninguna manera.

Para hacer lo que realmente desea hacer, consulte http://git-scm.com/book/es/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages