tidak, ini bukan yang diminta OP - jelas bahwa dia ingin melakukan rollback ke commit terakhir, bukan membatalkan commit terakhir. dia tidak mengatakan dia menambahkan beberapa file dan kemudian mengikatnya. begitu jelas dia menginginkan komit terakhir.
Paul
1
Terlalu sulit untuk menemukan jawaban atas pertanyaan yang sangat umum ini
Sam
Jawaban:
211
Caveat Emptor - Perintah yang merusak di depan.
Mitigasi - git reflogdapat menyelamatkan Anda jika Anda membutuhkannya.
1) URUNGKAN perubahan file lokal dan TETAP komit terakhir Anda
git reset --hard
2) URUNGKAN perubahan file lokal dan HAPUS pengubahan terakhir Anda
git reset --hard HEAD^
3) TETAP perubahan file lokal dan HAPUS komit terakhir Anda
Perintah ini akan menghapus komit Anda sebelumnya, jadi gunakan dengan hati-hati! git reset --hard lebih aman
rudivonstaden
9
WTF melakukan ini sebagai jawaban yang benar dengan 36 suara terbanyak. Saya baru saja kehilangan satu hari kerja untuk ini ... karena saya membaca jawabannya bukan komentar. Ini bukan jawaban yang benar untuk pertanyaan itu!
Chris Nevill
1
OK semua tidak hilang! Anda dapat melakukan git reflog ini akan memungkinkan Anda melihat komit yang Anda lakukan sebelum reset. Anda kemudian dapat membayar komitmen tersebut
Chris Nevill
3
Untuk apa nilainya, saya telah menafsirkan pertanyaan OP sebagai "bagaimana cara mengembalikan komit dan menghapus file saat ini", tetapi itu dan tetap ambigu. Saya akan memahami secara berbeda jika OP hanya mengatakan "bagaimana cara menghapus file saat ini yang belum ditambahkan atau dilakukan"
Joe Hanink
2
Git adalah antitesis dari pernyataan Alan Kays Hal-hal sederhana harus sederhana, hal-hal kompleks harus dimungkinkan. ... terutama bagian pertamanya. Tetap saja, terima kasih atas jawaban Anda. itu membantu.
0xC0000022L
46
Jika Anda ingin menghapus konten dan file yang baru ditambahkan yang sudah bertahap (ditambahkan ke indeks), maka Anda menggunakan:
git reset --hard
Jika Anda juga ingin menghapus komit terakhir Anda (adalah yang memiliki pesan "bla") maka lebih baik menggunakan:
git reset --hard HEAD^
Untuk menghapus file yang tidak terlacak (jadi file baru belum ditambahkan ke indeks) dan folder gunakan:
melakukan itu, tapi filenya masih ada. (file yang tidak terlacak masih ada)
Blankman
dalam hal ini Anda bisa melakukan "git stash"
jacktrade
3
dipilih karena ini adalah satu-satunya jawaban yang jelas dan tidak ambigu untuk pertanyaan OP yang jelas dan tidak ambigu.
Paul
4
Anda dapat mengembalikan komit menggunakan git revert HEAD^untuk mengembalikan ke komit berikutnya-ke-terakhir. Anda juga dapat menentukan komit untuk mengembalikan menggunakan id sebagai ganti HEAD ^
Jawaban:
Caveat Emptor - Perintah yang merusak di depan.
Mitigasi -
git reflog
dapat menyelamatkan Anda jika Anda membutuhkannya.1) URUNGKAN perubahan file lokal dan TETAP komit terakhir Anda
2) URUNGKAN perubahan file lokal dan HAPUS pengubahan terakhir Anda
3) TETAP perubahan file lokal dan HAPUS komit terakhir Anda
sumber
Jika Anda ingin menghapus konten dan file yang baru ditambahkan yang sudah bertahap (ditambahkan ke indeks), maka Anda menggunakan:
Jika Anda juga ingin menghapus komit terakhir Anda (adalah yang memiliki pesan "bla") maka lebih baik menggunakan:
Untuk menghapus file yang tidak terlacak (jadi file baru belum ditambahkan ke indeks) dan folder gunakan:
sumber
git reset --hard
akan memaksa direktori kerja kembali ke komit terakhir dan menghapus file baru / yang diubah.sumber
Anda dapat mengembalikan komit menggunakan
git revert HEAD^
untuk mengembalikan ke komit berikutnya-ke-terakhir. Anda juga dapat menentukan komit untuk mengembalikan menggunakan id sebagai ganti HEAD ^sumber
Jika Anda hanya ingin membatalkan komit terakhir, gunakan ini:
bekerja seperti pesona bagi saya.
sumber
Cara mudah dan sangat mudah untuk MENGURANGI perubahan file lokal sejak komit terakhir adalah dengan menempatkannya di cabang baru:
Ini meninggalkan perubahan di cabang baru. Kembali ke cabang asli untuk menemukannya kembali ke komit terakhir:
Cabang baru adalah tempat yang baik untuk mempraktikkan berbagai cara untuk mengembalikan perubahan tanpa risiko mengacaukan cabang asli.
sumber