Saya melakukan git commit
tapi aku tidak mendorongnya ke repositori belum.
Jadi ketika saya melakukan git status
, saya mendapatkan '# Anda branch depan 'master' oleh 1 komit.
Jadi jika saya ingin memutar kembali atas saya lakukan, saya hanya dapat melakukan:
git reset --hard eb27bf26dd18c5a34e0e82b929e0d74cfcaab316
mengingat bahwa ketika saya melakukan git log
yang saya dapatkan:
melakukan eb27bf26dd18c5a34e0e82b929e0d74cfcaab316 Date: Tue Sep 29 11:21:41 Tahun 2009 -0700melakukan db0c078d5286b837532ff5e276dcf91885df2296 Date: Tue Sep 22 10:31:37 tahun 2009 -0700
Sebenarnya, ketika anda menggunakan git reset
, anda harus merujuk ke komit bahwa anda adalah ulang ke, sehingga anda akan ingin db0c078
komit, mungkin.
Versi yang lebih mudah akan git reset --hard KEPALA^
, untuk me-reset ke commit sebelumnya sebelum saat kepala; dengan cara itu anda don't harus menyalin seluruh komit Id.
Berhati-hatilah ketika anda melakukan git reset --hard
, karena anda bisa kehilangan setiap perubahan yang belum dikomit yang anda miliki. Anda mungkin ingin memeriksa git status
untuk memastikan copy pekerjaan anda bersih, atau bahwa anda ingin menerbangkan setiap perubahan yang ada.
Selain itu, bukan KEPALA anda dapat menggunakan asal/master
sebagai acuan, seperti yang disarankan oleh @bdonlan di komentar: git reset --hard asal/master
JIKA anda TIDAK mendorong perubahan ke remote
git reset HEAD~1
Periksa apakah kerja copy bersih oleh git status
.
LAIN anda telah mendorong perubahan ke remote
git revert HEAD
Perintah ini akan mengembalikan/menghapus yang terakhir melakukan perubahan dan kemudian anda dapat mendorong
Ada dua cabang untuk pertanyaan ini (Bergulir kembali komit tidak berarti saya tidak ingin kehilangan semua perubahan lokal):
1. Untuk kembali terbaru komit dan membuang perubahan yang dilakukan file lakukan:
git reset --keras KEPALA~1
2. Untuk kembali terbaru komit tapi mempertahankan perubahan lokal (pada disk) lakukan:
git reset --KEPALA lembut~1
Ini (yang kemudian perintah) akan membawa anda untuk negara anda akan telah jika kau git add
.
Jika anda ingin disimpan dalam file setelah itu, lakukan
git reset
Sekarang anda dapat membuat lebih banyak perubahan sebelum menambahkan dan kemudian melakukan lagi.
Hapus terakhir sebelum melakukan push
git reset --KEPALA lembut~1
1
berarti komit terakhir, jika anda ingin menghapus dua terakhir menggunakan 2
, dan sebagainya*
Saya telah mengalami situasi yang sama yang saya lakukan di bawah ini karena hal ini jauh lebih mudah.
Dengan melewati commit-Id
anda dapat mencapai tertentu komit anda ingin pergi:
git reset --hard {commit-id}
Seperti yang anda ingin hapus terakhir anda melakukan sehingga anda harus lulus commit-Id
di mana anda perlu untuk memindahkan pointer:
git reset --hard db0c078d5286b837532ff5e276dcf91885df2296
Ini adalah apa yang saya lakukan:
Pertama checkout anda branch (untuk kasus saya master
branch):
git checkout master
Kemudian reset untuk remote KEPALA^ (it'll menghapus semua perubahan lokal), kekuatan yang bersih dan menarik:
git reset HEAD^ --hard && git clean -df && git pull
Saya percaya bahwa salah satu dari mereka akan cocok dengan kebutuhan anda
1 - melakukan Undo dan menyimpan semua file yang dipentaskan:
git reset --KEPALA lembut~;
2 - melakukan Undo dan disimpan semua file:
git reset KEPALA~;
3 - Undo komit dan benar-benar menghapus semua perubahan:
git reset --keras KEPALA~;
Aku punya masalah yang sama dan berakhir dengan melakukan:
git rebase -i HEAD~N
(N adalah jumlah melakukan git akan menunjukkan kepada anda)
Yang meminta editor teks anda dan kemudian anda dapat menghapus melakukan yang anda inginkan dengan menghapus baris yang terkait dengan itu.