cometí un error dos veces. ¿Cómo revertir dos confirmaciones y comprometer solo cosas buenas?¿Cómo revertir dos confirmaciones y comprometer solo cosas buenas?
Respuesta
Puede hacer un git rebase -i HEAD~2
y luego usar la interfaz para descartar los "errores" que están allí desde entonces y limpiar su historial. Sin embargo, esto altera el historial del proyecto y si ya ha presionado (y otros han retirado) sus cambios, existen algunos problemas sociales que resolver.
La otra opción es git revert
esos cambios. Luego se agregarán 2 nuevos commits al historial que hace que el hecho de que no desee estos dos commits sea explícito en el historial del proyecto. Menos limpio pero más fácil de trabajar.
Mis compañeros de trabajo se quejarán de que la mala comisión estuvo allí para empezar. Es mejor deshacerse de él antes de intentar fusionar la rama. Gracias por proporcionarnos la respuesta 'git rebase -i' y no solo diciendo" ¡realmente no quieres hacer eso! " como muchas personas lo hacen! –
Otro comando útil en esta situación es 'git push --force', en caso de que ya hayas presionado la confirmación incorrecta. –
La opción '--force' es destructiva. Si alguien más ha realizado cambios sobre sus confirmaciones y los ha enviado al repositorio, su impulso de fuerza los destruirá a todos. –
Primero, git reset HEAD~2
para descartar los dos primeros commits, mientras deja su árbol de trabajo exactamente como está. Luego, simplemente crea una nueva confirmación con lo que quieras (por ejemplo, con git add
sy luego git commit
).
Consulte Reset Demystified de Scott Chacon para obtener más información sobre la git reset
comunicación a menudo confusa.
Solo haría esto si el compromiso es solo local, si son públicos, utilizaría revertir en los 2 últimos commits – ryanzec
Sí, suponía que OP no ha enviado los commits incorrectos a ninguna parte. –
- 1. ¿Cómo revertir las dos confirmaciones anteriores?
- 2. ¿Cómo comprometer y revertir la transacción en el servidor sql?
- 3. ¿Cómo puedo revertir varias confirmaciones en Mercurial?
- 4. Cómo revertir varias confirmaciones como parte de una única confirmación
- 5. ¿Cómo comprometer solo archivos modificados (y no nuevos o eliminados)?
- 6. ¿Cuáles son las cosas buenas de baba?
- 7. ¿Cómo compruebo dos confirmaciones no consecutivas?
- 8. Mercurial: Revertir un solo trozo
- 9. Mercurial (hg) comprometer solo ciertos archivos
- 10. ¿Cómo comprometer solo parches seleccionados con git svn?
- 11. Revertir una compilación de fusión de git, y luego revertir la revertir
- 12. MySQL - Contando dos cosas con diferentes condiciones
- 13. primer hijo común de dos confirmaciones
- 14. ¿cómo presionas solo algunas de tus confirmaciones locales de git?
- 15. ¿Cuáles son las cosas buenas y malas en el diseño del kernel de Linux?
- 16. ¿Cómo puedo revertir mi aplicación Universal a solo iPhone?
- 17. Látex: cómo romper una línea cuando se suman dos cosas
- 18. cómo animar dos cosas al mismo tiempo en jquery
- 19. cómo reemplazar dos cosas a la vez con sed?
- 20. Awk revertir ambas líneas y palabras
- 21. git: cómo "consolidar" las confirmaciones locales
- 22. Empujando sin comprometer
- 23. IEnumerable y Buenas Prácticas (WCF) y
- 24. ¿Cómo eliminar las confirmaciones de git innecesarias?
- 25. sincronizar archivos sin comprometer?
- 26. Cómo revertir una lista?
- 27. Git Diff - Cómo revertir líneas o fragmentos seleccionados
- 28. CGPoint a NSValue y revertir
- 29. Mostrar las diferencias sin combinar para dos confirmaciones en git
- 30. Cómo revertir para comenzar y recrear/reconstruir nuevas migraciones
¿Qué es lo bueno? ¿Podría describir con más detalle cómo se ve su historia ahora y cómo desea que se vea? – svick
un poco más de detalle ayudaría si obtiene la respuesta correcta (¿algo bueno?) – ryanzec
Borre todas las cosas malas antes de comprometer todo lo demás. –