Por Anónimo (no verificado) , 29 Abril 2026

Lo que lograrás

Harás rollback de un release problemático — primero revirtiendo commits para deshacer el cambio en la historia funcional, luego re-tageando una versión anterior para re-deployment.

Dos escenarios

  • Rollback del deployment.
  • Rollback del código.

Escenario 1: deploy un tag más antiguo

git tag --sort=-v:refname | head
gh workflow run deploy.yml -f tag=v2.3.5

Escenario 2: revertir los commits

git checkout main
git pull
git revert <bad-sha>
git push

Revertir un merge commit

git log --merges -10
git revert -m 1 <merge-sha>
git push

Revertir un rango

git revert <older-sha>..<newer-sha>

Tagear el rollback

git tag -a v2.4.1 -m "Roll back v2.4.0 due to checkout regression"
git push origin v2.4.1

El antipatrón forward-fix

  • El fix toma horas y los clientes están impactados ahora.
  • El bug es corruptor de datos.
  • El fix necesita prueba cuidadosa.

Migraciones de base de datos y rollback

  • Las migraciones deberían ser aditivas.
  • Evita cambios disruptivos en migraciones.
  • Ten un camino de down-migration probado.
  • Usa feature flags para gatear caminos de código.

Coordinar con el equipo

  • Anuncia el rollback.
  • Documenta el SHA siendo revertido.
  • Abre un issue de seguimiento.
  • Programa un post-mortem.

Evitar rollbacks

  • Releases canary.
  • Feature flags.
  • Validación pre-release.
  • Releases más pequeños.

Reaplicar tras fix

git revert <revert-sha>
git commit -am "Fix the issue that caused the original revert"