git - ultimo - Cómo revertir múltiples confirmaciones como parte de una única confirmación
git--amend (3)
En el caso de revert --no-commit
complicados, que se cambian entre sí, el revert --no-commit
podría ser problemático.
Mi solución simple fue hacer un revertido real, y la calabaza:
git revert <all commits>
git rebase -i
Y luego marque todos los revertidos como squash
, excepto el primero, para crear un solo commit.
Este no es un problema importante, solo es algo que quiero saber si es posible o no.
Digamos que tenemos dos confirmaciones, abcd123
y wxyz789
, que ocurren en lugares separados y no adyacentes, muy atrás en la historia de un repo. Ahora digamos que queremos revertirlos. Obra
git revert abcd123 wxyz789
daría lugar a dos confirmaciones separadas, una revertir abcd123
y la otra revertir wxyz789
.
Todo esto está muy bien, pero ¿qué pasa si los errores que queremos corregir en las dos confirmaciones están vinculados lógicamente, y para los fines de la autodocumentación nos gustaría hacer una única confirmación que contenga una sola? Estoy revertiendo archivos x, y, z "comentar? ¿Hay un comando git que hace esto?
(Por supuesto, soy consciente de que es posible crear un compromiso donde solo corrijo manualmente todos los cambios y luego presiono. Esto es doloroso por todas las razones obvias).
Tu puedes hacer:
git revert abcd123
git revert --no-commit wxyz789
git commit --amend
... y luego escriba un mensaje de confirmación apropiado que describa el efecto combinado de revertir ambas confirmaciones.
git revert -n <commits>
git commit
El primer comando hará todos los reinicios sin crear ningún compromiso y establecerá el resultado final (la opción -n). Después de eso, el comando commit crea un solo commit.