Digamos que tengo 3 commits sin apresurar. Ahora quiero cambiar el mensaje de confirmación del primer o segundo commit (cambiarlos por el tercero es simple usando git commit --amend
). ¿Como hacer eso?¿Cómo edito el mensaje de confirmación de cualquier confirmación en git?
Respuesta
para rebotar en el sub-pregunta: ¿hay una git commit --amend
para una confirmación anterior (y no sólo el último), podría intentar algo así (no determinado todavía, pero Colin O'Dell menciones en the comments haber escrito un guión para que colinodell/git-amend-old):
git checkout -b tmp
git reset --hard HEAD~2
git commit -amend
git rebase --onto tmp [email protected]{1} master
Eso sería como:
x---x---x---x---x
^
|
(master*) (* = current branch)
git checkout -b tmp
x---x---x---x---x
^
|
(tmp*, master)
git reset --hard HEAD~2
x---x---x---x---x
^ ^
| |
(tmp*) (master)
git commit -amend
y (tmp*)
/
x---x---x---x---x
| ^
([email protected]{1}) |
(master)
git rebase --onto tmp [email protected]{1} master
(tmp)
y---x'---x' (master*)
/
x---x---x---x---x (only referenced in reflog)
En 'rebase --onto', vea http://stackoverflow.com/questions/1994463/how-to-cherry-pick-a-range-of-commits-and-merge-into-another-branch/1994491 # 1994491 – VonC
¿por qué molestarse? rebase -i es mucho más simple – CharlesB
@CharlesB: estoy de acuerdo, 'rebase -i' es más simple, pero también * interactivo *. Lo que significa que no puede incluirlo en un script o en un alias que agrupe una secuencia de comandos. – VonC
Este es un trabajo para el poderoso comando git rebase -i
. Además, consulte la sección Interactive Rebasing del libro de Git.
Quizás una pregunta estúpida, pero ¿se puede usar 'git rebase -i' de forma no interactiva? – Mot
No, no como tal. Sin embargo, todo lo que hace 'git rebase -i' puede (en teoría) hacerse usando otros comandos Git con script. Por lo tanto, sería posible escribir un script para modificar un mensaje de confirmación anterior, pero no sé si aún existe. –
felicitaciones por su 15 insignia de oro;) ¡Ahora eres un verdadero idiota! (Err ... git-guru, quise decir) (quiero decir, gurú sobre el nombre de la herramienta git) (quiero decir, ya sabes a qué me refiero) – VonC
- 1. obtener mensaje de confirmación en git hook
- 2. Confirmación de empuje accidental: cambiar el mensaje de confirmación de Git
- 3. Cambiar el mensaje de confirmación anterior en Git
- 4. Mensaje de confirmación de impresión de una confirmación determinada en git
- 5. ¿Cómo edito la confirmación inicial en un repositorio github?
- 6. Edición del mensaje de confirmación de git en GitHub
- 7. ¿Cómo edito las confirmaciones pasadas de git para eliminar mi contraseña de los registros de confirmación?
- 8. Tamaño máximo de mensaje de confirmación
- 9. ¿Cambiar el mensaje de confirmación SVN retroactivamente?
- 10. Git deshacer última confirmación
- 11. ^M caracteres en el mensaje de confirmación de git (git commit -v)
- 12. ¿Cómo detengo una confirmación de Git cuando VI está en la pantalla esperando un mensaje de confirmación?
- 13. ¿Cómo eliminar la confirmación de git-notes?
- 14. Git push all commits como confirmación única con mensaje personalizado
- 15. Cómo fusionar una confirmación específica en Git
- 16. CQRS: ¿cuándo enviar un mensaje de confirmación?
- 17. ¿Cómo puedo cambiar los comentarios predeterminados en el mensaje de confirmación de git?
- 18. División de la primera confirmación en git
- 19. Confirmación de GitHub con mensaje extendido
- 20. ¿Cómo respaldo una confirmación en git?
- 21. ¿Cómo puedo hacer una confirmación de Git en el pasado?
- 22. Actualizando el mensaje de confirmación en Mercurial extensión MQ
- 23. Cómo editar el mensaje de confirmación de una fusión de git
- 24. Git: ver mi última confirmación
- 25. compruebe el último mensaje de confirmación en subversión
- 26. ¿Restaurar una confirmación previa de git?
- 27. ¿Cómo podría uno "describir git" cada confirmación?
- 28. Git excluye una confirmación en una rama
- 29. Git: cómo eliminar el archivo de la confirmación histórica?
- 30. Revertir parte de una confirmación con git
Eso es un poco similar a http://stackoverflow.com/questions/3926768/amend-a-commit-that-wasnt-the -previous-commit. Intenté (abajo) para ver cómo un 'commit --amend' podría ser guionado. Déjame saber si funciona. – VonC