Saya mencoba untuk membatalkan semua perubahan sejak komit terakhir saya. Saya mencoba git reset --hard
dan git reset --hard HEAD
setelah melihat posting ini . Saya merespons dengan kepala sekarang di 18c3773 ... tetapi ketika saya melihat sumber lokal saya semua file masih ada. Apa yang saya lewatkan?
git
command-line
undo
git-reset
Antarr Byrd
sumber
sumber
Jawaban:
Ini akan membatalkan pentas semua file yang mungkin telah Anda tampilkan
git add
:Ini akan mengembalikan semua perubahan yang tidak dikomit lokal (harus dijalankan di root repo):
Anda juga dapat mengembalikan perubahan yang tidak dikomit hanya ke file atau direktori tertentu:
Namun cara lain untuk mengembalikan semua perubahan yang tidak dikomit (untuk mengetik, tetapi berfungsi dari subdirektori mana pun):
Ini akan menghapus semua file lokal yang tidak dilacak , sehingga hanya file git yang dilacak yang tersisa:
Singkatnya: menjalankan perintah di bawah ini pada dasarnya sama dengan segar
git clone
dari sumber asli (tetapi tidak mengunduh ulang apa pun, jadi jauh lebih cepat):Penggunaan umum untuk ini adalah dalam skrip build, ketika Anda harus memastikan bahwa pohon Anda benar-benar bersih - tidak memiliki modifikasi atau file objek yang dibuat secara lokal atau membuat artefak, dan Anda ingin membuatnya bekerja sangat cepat dan tidak mengulangi clone seluruh repositori setiap saat.
sumber
git clean
, itu akan membatalkan perubahan yang tidak dikomit tetapi menyimpan semua file yang tidak dilacak atau ditambahkan. Tetapi, ini dapat memengaruhi hasil pembangunan karena beberapa file yang tidak terlacak mungkin mengganggu. Misalnya bagaimana jika direktori .idea Anda rusak?git reset
memberi tahu saya bahwa saya memiliki perubahan yang harus saya selamatkangit clean -fdx
menghapus sayanode_modules
dan.env
, hebatJika Anda ingin " membatalkan " semua perubahan yang tidak dikomit, jalankan saja:
Jika Anda memiliki file yang tidak dilacak (periksa dengan menjalankan
git status
), ini dapat dihapus dengan menjalankan:git stash
menciptakan simpanan baru yang akan menjadi simpanan @ {0} . Jika Anda ingin memeriksa dulu, Anda dapat berlarigit stash list
untuk melihat daftar simpanan Anda. Ini akan terlihat seperti:Setiap simpanan dinamai setelah komit pesan sebelumnya.
sumber
git add .
sebelumnyagit stash
karena itu menunjukkan saya perubahan yang tidak berkomitmen bahkan setelahgit stash
ada juga
git stash
- yang "menyembunyikan" perubahan lokal Anda dan dapat diterapkan kembali di lain waktu atau dibatalkan jika tidak lagi diperlukaninfo lebih lanjut tentang penyimpanan
sumber
Saya menggunakan hierarki sumber .... Anda dapat mengembalikan semua perubahan yang tidak dikomit dengan 2 langkah mudah:
1) hanya perlu mengatur ulang status file ruang kerja
2) pilih semua file unstage (perintah + a), klik kanan dan pilih hapus
Sesederhana itu: D
sumber
Apa yang saya lakukan adalah
Satu liner:
git add . && git stash && git stash drop
sumber
Bagi mereka yang sampai di sini mencari apakah mereka bisa membatalkan
git clean -f -d
, dengan mana file dibuat dalam gerhana dihapus,Anda dapat melakukan hal yang sama dari UI menggunakan "restore from local history" untuk ref: Restore from local history
sumber
Menyatakan transisi dari satu komit ke komit baru
Tindakan untuk transisi negara
Periksa perbedaan
Kembalikan ke komit terakhir
Setara dengan git clone, tanpa mengunduh ulang apa pun
sumber