</>
⌕
Junior #undo

git reset, revert và checkout/restore khác nhau thế nào?

⚡ Trả lời nhanh

reset di chuyển nhánh về commit cũ (viết lại lịch sử); revert tạo commit mới đảo ngược thay đổi (an toàn với nhánh chung); restore khôi phục file trong working tree.

git reset --soft HEAD~1    # bỏ commit, giữ thay đổi trong staging
git reset --hard HEAD~1    # bỏ commit và xóa luôn thay đổi (nguy hiểm)
git revert <sha>           # tạo commit đảo ngược, dùng cho nhánh đã push
git restore file.txt       # bỏ thay đổi chưa commit của 1 file
🃏 Ôn bằng flashcard