Nâng CaoGit iconGit

Production deploy xong thì phát hiện bug. Cần rollback ngay. `git revert` hay deploy từ previous tag?

Tình huống khẩn cấp — ưu tiên speed và safety:

Option 1: Deploy từ previous tag (nhanh nhất, an toàn nhất):

bash
git checkout v2.3.1  # version trước khi deploy — sẽ ở detached HEAD state
# Tạo branch tạm hoặc trigger CI/CD từ tag trực tiếp
# Rebuild và deploy
# Git history không thay đổi gì

Phù hợp khi: CI/CD pipeline deploy từ tag, có artifact của version trước sẵn sàng. Lưu ý: git checkout <tag> đặt repo vào detached HEAD — tốt nhất là trigger CI/CD pipeline từ tag thay vì build thủ công.

Option 2: git revert (nếu không có artifact):

bash
git revert -m 1 <merge-commit-hash>  # revert PR merge
# hoặc revert từng commit:
git revert HEAD~3..HEAD
git push origin main
# Trigger deploy

So sánh:
- Tag redeploy: nhanh hơn, không thay đổi git history, artifact cũ có thể đã có sẵn
- Revert: tạo rõ ràng record "chúng ta đã revert", dễ re-apply sau khi fix

Sau emergency:

bash
# Fix bug trên feature branch
# Revert the revert (nếu dùng revert):
git revert <revert-commit>  # re-enables the feature
# Test kỹ, deploy lại

Quan trọng: không xóa revert commit hay dùng reset trên main — cần audit trail.

Post-mortem sau khi ổn định: tại sao bug qua được CI?

Xem toàn bộ Git cùng filter theo level & chủ đề con.

Mở danh sách Git