Menghapus file non-repositori dengan git?

98

Saya sedang menulis kode Autotools dan dalam proses pengembangan, banyak sekali file yang dihasilkan.

Apakah ada cara untuk memberitahu git untuk menghapus semua file dari direktori yang bukan bagian dari repositori?

Scott
sumber

Jawaban:

179

Anda bisa menggunakan git-clean . Perintah ini akan menghapus file / direktori yang tidak terlacak. Secara default, ini hanya akan mencetak apa yang telah dihapus, tanpa benar-benar menghapusnya.

Diberikan -fflag untuk menghapus file, dan -dflag untuk menghapus direktori kosong juga:

git clean -df

Juga menghapus file yang diabaikan:

git clean -dfx
Lily Ballard
sumber
36
Masukkan a -xdan semuanya sebagus repo yang baru saja dikloning.
Dustin
2
Saya pikir yang dia maksud adalah menghapus file dari git, bukan sistem file yang sebenarnya, ups!
Andrew Marshall
Perintah git cleanitu sendiri sebenarnya akan menghapus semua file yang tidak terlacak - kecuali jika variabel konfigurasi Git clean.requireForce disetel ke true. Jika disetel ke false, maka -ff diperlukan untuk membersihkan direktori
Adam
6
Versi terbaru git akan error tanpa parameter apa pun; RequirementForce defaultnya true, jadi untuk melakukan dryrun yang Anda butuhkan -n
Seb
1
menindaklanjuti @Dustin: git clean -ixakan menunjukkan apa yang akan dibersihkan dan memberi Anda menu opsi. Kesukaanku.
wcochran