Lebih
Cara memindahkan lokal (tidak terlacak) file dari saat ini Git bekerja pohon
Bagaimana anda hapus tidak terlacak file lokal dari kerja anda saat ini pohon?
6524
35
Sesuai Git Dokumentasi git clean
Langkah 1 adalah untuk menunjukkan apa yang akan dihapus dengan menggunakan
-n
pilihan:Bersih Langkah - hati-hati: ini akan menghapus file:
bersih -f -d
ataugit bersih -fd
bersih -f -X
ataugit bersih -fX
bersih -f -x
ataugit bersih -fx
Catatan dalam kasus perbedaan pada
X
untuk yang terakhir dua perintah.Jika
bersih.requireForce
diatur ke "benar" (default) dalam konfigurasi anda, salah satu kebutuhan untuk menentukan-f
jika tidak ada yang benar-benar akan terjadi.Lagi lihat
git-bersih
docs untuk informasi lebih lanjut.Pilihan
Menggunakan git
bersih -f -d
untuk memastikan bahwa direktori juga dihapus.Tidak benar-benar menghapus apa-apa, hanya menunjukkan apa yang akan dilakukan.
Menghapus terpantau direktori selain tidak terlacak file. Jika sebuah direktori terpantau dikelola oleh berbagai repositori Git, itu tidak dihapus secara default. Gunakan opsi-f dua kali jika anda benar-benar ingin menghapus suatu direktori.
Anda kemudian dapat memeriksa apakah file anda benar-benar pergi dengan
git status
.Saya terkejut tidak ada yang menyebutkan ini sebelumnya:
Yang merupakan singkatan dari interaktif dan anda akan mendapatkan gambaran singkat dari apa yang akan dihapus menawarkan anda kemungkinan untuk sertakan/kecualikan file yang terkena. Secara keseluruhan, masih lebih cepat daripada menjalankan wajib
--dry-run
sebelum pembersihan nyata.Anda akan memiliki untuk melemparkan
-d
jika anda juga ingin merawat folder kosong. Pada akhirnya, itu membuat untuk yang bagus alias:Bahwa menjadi kata, ekstra tangan memegang perintah interaktif dapat melelahkan bagi pengguna berpengalaman. Hari ini saya hanya menggunakan yang sudah disebutkan
git bersih -fd
git-bersih
- Hapus terpantau file dari bekerja pohonJika tidak terlacak direktori git repositori sendiri (misalnya submodule), anda perlu menggunakan
-f
dua kali:git bersih -d -f -f
Cara yang mudah untuk memindahkan file tidak terlacak
Untuk menghapus semua terpantau file, sederhana caranya adalah dengan menambahkan semua dari mereka pertama dan reset repo seperti di bawah ini
Saya suka
git simpanan push-u
karena anda dapat membatalkan mereka semua dengangit simpanan pop
.EDIT: saya Juga menemukan cara untuk menunjukkan terpantau file simpanan (misalnya
git show simpanan@{0}^3
) https://stackoverflow.com/a/12681856/338986EDIT2:
git simpanan menyimpan
adalah usang dalam mendukungpush
. Terima kasih @script-serigala.Ini adalah apa yang saya selalu gunakan:
Untuk proyek yang sangat besar, anda mungkin ingin menjalankan beberapa kali.
git-bersih adalah apa yang anda cari. Hal ini digunakan untuk menghilangkan terpantau file dari bekerja di pohon.
Jika diperlukan untuk menghapus terpantau file dari subdirektori tertentu,
Dan cara gabungan untuk menghapus terpantau dir/file dan file diabaikan.
setelah ini anda akan memiliki file yang diubah hanya dalam
git status
.git bersih -fd
menghapus direktorigit bersih -fX
menghilangkan diabaikan filegit bersih -fx
menghilangkan diabaikan dan un-file diabaikandapat digunakan semua pilihan di atas dalam kombinasi sebagai
git bersih -fdXx
cek git manual untuk bantuan lebih lanjut
Menghapus semua ekstra folder dan file di repo ini + submodul
Ini membuat anda dalam keadaan segar clone.
Menghapus semua ekstra folder dan file di repo ini tapi tidak submodul
Hanya menghapus folder-folder tambahan tapi tidak file (ex. membangun folder)
Menghapus ekstra folder + file diabaikan (tapi tidak ada file baru ditambahkan)
Jika file tidak't diabaikan dan belum diperiksa-dalam kemudian tetap. Catatan modal X.
*New modus interaktif**
OK, menghapus yang tidak diinginkan tidak terlacak file dan folder mudah menggunakan git` di baris perintah, lakukan saja seperti ini:
Double check sebelum melakukan hal itu karena akan menghapus file dan folder tanpa membuat sejarah...
Juga dalam kasus ini,
-f
adalah singkatan dari kekuatan dan-d
singkatan dari direktori...Jadi, jika anda ingin menghapus hanya file, anda dapat menggunakan
-f
hanya:Jika anda ingin menghapus(direktori) dan file, anda dapat menghapus hanya terpantau direktori dan file-file seperti ini:
Juga, anda dapat menggunakan
-x
bendera termasuk file yang diabaikan oleh git. Ini akan sangat membantu jika anda ingin menghapus semuanya.Dan menambahkan
-i
bendera, membuat git meminta anda untuk izin untuk menghapus file satu per satu pergi.Jika anda tidak yakin dan ingin memeriksa hal-hal pertama, tambahkan
-n
bendera.Gunakan
-q
jika anda don't ingin melihat laporan setelah sukses penghapusan.Saya juga membuat gambar di bawah ini untuk membuatnya lebih memorisable, khusus saya telah melihat banyak orang bingung
-f
untuk membersihkan folder kadang-kadang atau mencampurnya entah bagaimana!Cara yang lebih baik adalah dengan menggunakan: git bersih
Hal ini menghilangkan terpantau file, termasuk direktori
(-d)
dan file yang diabaikan oleh git (-x)`.Juga, menggantikan
-f
argumen dengan-n
untuk melakukandry-run
atauaku
untuk mode interaktif dan itu akan memberitahu anda apa yang akan dihapus.Pengguna interaktif pendekatan:
-aku interaktif
-f untuk kekuatan
-d untuk direktori
-x untuk mengabaikan file(tambahkan jika diperlukan)
Catatan: Add -n atau --dry-run untuk hanya memeriksa apa yang akan dilakukan.
git bersih -f -d -x $(git rev-mengurai --show-cdup)
berlaku bersih ke direktori root, di mana pun anda menyebutnya dalam repositori pohon direktori. Saya menggunakannya sepanjang waktu seperti itu tidak memaksa anda untuk meninggalkan folder di mana anda bekerja sekarang dan memungkinkan untuk membersihkan & komit kanan dari tempat di mana anda berada.Pastikan bahwa bendera
-f
,-d
,-x
sesuai dengan kebutuhan anda:Ada bendera lain juga tersedia, hanya memeriksa
git bersih --help
.Bagi saya hanya mengikuti bekerja:
Dalam semua kasus lain, saya mendapatkan pesan "melompat-Lompat Direktori" untuk beberapa subdirektori.
Sebuah trik kuno untuk situasi seperti itu aku hanya menemukan dan mencoba (yang bekerja sempurna):
Hati-hati! Pastikan untuk melakukan perubahan yang diperlukan (bahkan di non-terpantau file) sebelum melakukan ini.
Jika anda hanya ingin menghapus file yang terdaftar sebagai terpantau oleh 'git status'
Saya lebih memilih untuk 'git bersih' karena 'git bersih' akan menghapus file diabaikan oleh git, jadi anda membangun berikutnya akan harus membangun kembali semuanya dan anda mungkin kehilangan IDE pengaturan juga.
Untuk mengetahui apa yang akan dihapus sebelum benar-benar menghapus:
git bersih -d -n
Ini akan menampilkan sesuatu seperti:
Ini akan menghapus sample.txt
Untuk menghapus segala sesuatu yang tercantum dalam output dari perintah sebelumnya:
git bersih -d -f
Ini akan menampilkan sesuatu seperti:
Menghapus sample.txt