Cara menghapus semua perubahan dari direktori kerja termasuk file baru yang tidak terlacak. Saya tahu itu git checkout -f
bisa, tetapi itu tidak menghapus file baru yang tidak terlacak yang dibuat sejak komit terakhir.
Adakah yang punya ide bagaimana melakukan itu?
git help reset
dangit help clean
Jawaban:
Untuk melihat apa yang akan dihapus sebelumnya, tanpa benar-benar menghapusnya, gunakan
-n
flag (ini pada dasarnya adalah uji coba). Ketika Anda siap untuk benar-benar menghapus, maka hapus-n
bendera:git clean -nfd
sumber
git clean -fxd
sebenarnya bisa BENAR-BENAR berbahaya jika Anda tidak tahu apa yang Anda lakukan. Anda dapat menghapus secara permanen beberapa file penting yang tidak terlacak, seperti database Anda, dll. Berhati-hatilah.git clean -f -d
akan menghapus file dari folder yang diabaikan juga. Jadi semua log lokal Anda dan hal-hal seperti itu akan hilang. Biasanya itu bukan masalah besar, tetapi lebih baik untuk tahu.Metode teraman, yang sering saya gunakan:
Penjelasan sintaks per
/docs/git-clean
halaman:-f
(alias:)--force
. Jika variabel konfigurasi Git clean.requireForce tidak disetel ke false, git clean akan menolak untuk menghapus file atau direktori kecuali diberikan -f, -n atau -i. Git akan menolak untuk menghapus direktori dengan sub direktori atau file .git kecuali -f kedua diberikan.-d
. Hapus direktori tidak terlacak selain file tidak terlacak. Jika direktori tidak dilacak dikelola oleh repositori Git yang berbeda, itu tidak dihapus secara default. Gunakan opsi -f dua kali jika Anda benar-benar ingin menghapus direktori tersebut.Seperti yang disebutkan dalam komentar, mungkin lebih baik melakukan
git clean -nd
yang berjalan kering dan memberi tahu Anda apa yang akan dihapus sebelum benar-benar menghapusnya.Tautan ke
git clean
halaman dokumen: https://git-scm.com/docs/git-cleansumber
git clean -nd .
sebelum benar-benar menghapus file menggunakangit clean -fd .
add -A
+commit -a
+ kosongrevert head
terlebih dahulugit clean
. Meninjau setiap penghapusan tidak cukup untuk skenario besar. Juga, lari kering bukanlah peluru perak: bagaimana jika Anda melewatkan sesuatu atau melakukan kesalahan selama peninjauan?Untuk semua file yang tidak dipentaskan, gunakan:
Itu
.
akhirnya itu penting.Anda dapat mengganti
.
dengan nama sub-direktori untuk menghapus hanya sub-direktori spesifik proyek Anda. Masalahnya dibahas secara khusus di sini .sumber
src/app/work/filename.js
dan../app/working/test/filename.js
. Hanya menggunakangit checkout -- .
di cabang hanya menghapus file pertama ( tanpa yang memimpin ../ ). Jadi saya haruscd ../
naik ke direktori lokasi kedua untuk menghapus file kedua menggunakan perintah itu.Lihatlah
git clean
perintahnya.sumber
git clean -i
dan memilih "bersih" dari menu - ini akhirnya menghapus file baru.Karya-karya berikut:
Harap dicatat bahwa ini akan membuang perubahan lokal Anda yang tidak dipentaskan dan dipentaskan. Jadi, Anda harus melakukan apa pun yang ingin Anda pertahankan, sebelum Anda menjalankan perintah ini.
Kasus penggunaan umum: Anda memindahkan banyak file atau direktori, dan kemudian ingin kembali ke keadaan semula.
Kredit: https://stackoverflow.com/a/52719/246724
sumber
git stash drop
?git add -A .
). Saya kehilangan 30m karena tidak ada kecocokan file. Terima kasih!Anda dapat melakukan ini dalam dua langkah:
git checkout -f
git clean -fd
sumber
Saya pikir itu ( peringatan: mengikuti akan menghapus semuanya )
Untuk
reset
membatalkan perubahan. Theclean
untuk menghilangkan terpantau f iles dan d irectories.sumber
git pull
sesudahnya:CONFLICT (content): Merge conflict in...
Saya hanya menyelesaikan ini dengangit pull --strategy=ours
Ini akan menghapus semua file yang tidak terlacak.
sumber
git clean -i
pertama-tama akan menunjukkan kepada Anda item yang akan dihapus dan melanjutkan setelah konfirmasi Anda. Saya menemukan ini berguna ketika berurusan dengan file penting yang tidak boleh dihapus secara tidak sengaja.Lihat
git help clean
untuk informasi lebih lanjut, termasuk beberapa opsi berguna lainnya.sumber
Jika Anda ingin membuang semua perubahan, Anda bisa menggunakan salah satu opsi yang valid di alias di
.gitconfig
. Contohnya:Pemakaian:
git discard
sumber
Solusi alternatif adalah dengan melakukan perubahan, dan kemudian menyingkirkan komitmen tersebut. Ini tidak memiliki manfaat langsung pada awalnya, tetapi membuka kemungkinan untuk melakukan potongan, dan untuk membuat tag git untuk cadangan.
Anda dapat melakukannya di cabang saat ini, seperti ini:
Atau Anda dapat melakukannya di HEAD terpisah. (dengan asumsi Anda mulai di cabang BRANCHNAME):
Namun, apa yang biasanya saya lakukan adalah dengan melakukan potongan, kemudian beri nama beberapa atau semua komit sebagai "DISCARD: ...". Kemudian gunakan rebase interaktif untuk menghapus komitmen buruk dan menjaga yang baik.
Ini lebih bertele-tele, tetapi memungkinkan untuk meninjau perubahan mana yang ingin Anda buang.
The
git lol
dangit lola
cara pintas telah sangat membantu dengan alur kerja ini.sumber
Untuk folder tertentu yang saya gunakan:
sumber
Ini mungkin jawaban noob, tetapi: Saya menggunakan TortoiseGit untuk windows dan memiliki fitur yang bagus yang disebut REVERT. Jadi yang Anda lakukan untuk mengembalikan perubahan nonpushed lokal yang tidak bertahap adalah:
sumber