Ketika saya menjalankan git reset --hard HEAD
, itu seharusnya direset ke versi asli dari apa yang Anda tarik, seperti yang saya mengerti. Sayangnya, ia meninggalkan file-file yang tergeletak di sekitarnya, karena git status
menunjukkan daftar besar file yang tidak terlacak.
Bagaimana Anda memberi tahu git, "Kembalikan saja ke PERSIS apa yang ada di tarikan terakhir, tidak lebih, tidak kurang"?
git reset --hard
mengatur ulang indeks Anda dan mengembalikan file yang dilacak kembali ke keadaan saat mereka berada di HEAD. Itu meninggalkan file yang tidak terlacak sendirian.Jawaban:
Anda harus menggunakan
git clean -f -d
untuk menyingkirkan file dan direktori yang tidak terlacak dalam copy pekerjaan Anda.Jika Anda perlu mengatur ulang seluruh repositori untuk dikuasai termasuk semua submit git, jalankan skrip ini:
sumber
-x
jika Anda ingin menghapus file .gitignored Anda dan kembali ke keadaan murni.-n
ke tes akan dihapus dulu. menggabungkan semuanya dalam satu argumen:-dfn
git clean -qfdx
sini. Hapus semuanya dan lakukan dengan diam-diam.-d -f
dapat di-dekor dua kali-dff
untuk-d -f -f
, ini akan menghapus SEMUA direktori yang tidak terlacak, termasuk direktori yang tidak terlacak yang dilindungi.Jika Anda memiliki file Anda masih ingin menyimpan:
git clean -di
akan melakukan pembersihan interaktif yang memungkinkan Anda hanya menghapus file / direktori yang tidak Anda inginkan lagi.sumber
atau, zsh memberikan alias 'gpristine':
Yang sangat berguna.
Jika mengerjakan repo bercabang dua, pastikan untuk mengambil dan mengatur ulang dari repo / cabang yang benar, misalnya:
sumber
-x
suka jika Anda baru saja mengkloning repo. Jika itu yang Anda inginkan, itu sempurna. Jika Anda hanya ingin menghapus file yang tidak dilacak , menghapus-x
opsi berfungsi dengan baik.gpristine
Pendekatan interaktif pengguna:
-i untuk interaktif
-f untuk memaksa
-d untuk direktori
-x untuk file yang diabaikan (tambahkan jika diperlukan)
Catatan: Tambahkan -n atau --dry-jalankan untuk hanya memeriksa apa yang akan dilakukan.
sumber
Anda bisa menggunakannya
git stash
. Anda harus menentukan--include-untracked
, jika tidak, Anda akan berakhir dengan masalah asli.Kemudian cukup masukkan entri terakhir di simpanan
Anda dapat membuat alias berguna-keren untuk itu, dan menyebutnya
git wipe
sebagai contoh:sumber
Perintah yang Anda cari adalah
git clean
sumber
git-clean
Gunakan untuk menghapus file yang tidak dilacak di pohon kerja. Berikut ini adalah beberapa opsi (secara singkat) yang dapat digunakan dengangit clean
perintah.-d
gunakan saat tidak ada jalur yang ditentukan. Jadi git berulang ke direktori yang tidak dilacak untuk menghapusnya.-f/--force
Untuk menghapus file yang tidak terlacak bersarang.-i/--interactive
Tunjukkan apa yang akan dilakukan dan bersihkan file secara interaktif.-n/--dry-run
Tunjukkan apa yang akan terjadi tanpa menghapus apa pun.-x
abaikan filecontoh:
git clean -f -d
-> Hapus semua file yang tidak terlacak dalam direktori saat ini, setiap subdirektori.sumber
Anda mungkin telah melakukan soft reset di beberapa titik, Anda dapat menyelesaikan masalah ini dengan melakukan
sumber