Cách rollback lại merge trước đó khi mà chính mình merge vào và chưa push lên remote
Cách 1:
git reset --hard HEAD~1
HEAD~ là branch hiện tại
1 - là quay trở lại 1 commit trước. thay đổi số 1 thành 2,3,4,5 để muốn quay lại 2,3,4,5 commit trước đó
Cách 2:
git reset --hard
Chay: git reflog để lấy
VD: khi chạy git reflog muốn rollback về 273048b HEAD@{2} thì chạy
git reset –hard 273048b
hoặc
git reset –hard HEAD@{2}
======================================
Cách rollback lại merge trước đó khi mà có người khác đã push lên
Cách 1:
$ git reset --merge HEAD~1
(mỗi lần chạy câu này sẽ quay về 1 merge trước đó - có thể thay đổi 1 thành 2,3,4,... để về 2,3,4,... merge trước đó)
Cách 2:
$ git reset --merge commit_before_merge
Chay: git reflog (để lấy commit_before_merge)
VD: khi chạy git reflog muốn rollback về 273048b HEAD@{2} thì chạy
git reset --merge 273048b
hoặc
git reset --merge HEAD@{2}
======================================
Khi rollback về rồi thì chạy câu lệnh này để Ghi đè nhánh trên remote
git push --force origin branch_name
Cảm ơn bạn đã trả lời.