Ada banyak cara untuk melakukannya, misalnya:
jika Anda belum mendorong komit ke publik:
git reset HEAD~1 --soft
Itu saja, perubahan komit Anda akan berada di direktori kerja Anda, sedangkan komit TERAKHIR akan dihapus dari cabang Anda saat ini. Lihat git reset man
Dalam kasus Anda lakukan dorongan publik (pada cabang yang disebut 'master'):
git checkout -b MyCommit //save your commit in a separate branch just in case (so you don't have to dig it from reflog in case you screw up :) )
kembalikan komit secara normal dan tekan
git checkout master
git revert a8172f36 #hash of the commit you want to destroy
# this introduces a new commit (say, it's hash is 86b48ba) which removes changes, introduced in the commit in question (but those changes are still visible in the history)
git push origin master
sekarang jika Anda ingin memiliki perubahan itu saat Anda melakukan perubahan lokal di copy pekerjaan Anda ("sehingga salinan lokal Anda menyimpan perubahan yang dibuat di komit itu") - hanya mengembalikan opsi komit kembali dengan --no-commit
:
git revert --no-commit 86b48ba (hash of the revert commit).
Saya telah membuat contoh kecil: https://github.com/Isantipov/git-revert/commits/master