Bagaimana Anda menghapus file lokal yang tidak terlacak dari pohon kerja Anda saat ini?
git
branch
git-branch
Hanya baca
sumber
sumber
git clean
sekarang memiliki mode interaktif ! Lihat jawaban saya untuk pertanyaan lain ini : git 1.8.4+git clean
atau beberapa variasi dalam jawaban di bawah ini, termasuk versi interaktif untuk menghapus hanya file selektif, tetapi mode interaktif dapat membosankan. Apa pun yang Anda lakukan, pastikan Anda memahami apa yanggit clean
akan dihapus atau digunakan--dry-run
untuk memberi tahu Anda tanpa menghapus apa pun.rm files-to-be-deleted
Jawaban:
Langkah 1 adalah untuk menunjukkan apa yang akan dihapus dengan menggunakan
-n
opsi:Langkah Bersih - berhati - hatilah: ini akan menghapus file :
git clean -f -d
ataugit clean -fd
git clean -f -X
ataugit clean -fX
git clean -f -x
ataugit clean -fx
Perhatikan perbedaan huruf pada
X
untuk dua perintah terakhir.Jika
clean.requireForce
diatur ke "true" (default) dalam konfigurasi Anda, orang perlu menentukan-f
jika tidak, tidak ada yang akan terjadi.Sekali lagi lihat
git-clean
dokumen untuk informasi lebih lanjut.sumber
git clean -f
hanya berfungsi di direktori tempat namanya (dan subdirektori). Jika Anda ingin membersihkan seluruh copy pekerjaan, Anda harus memanggilnya di direktori root-nya.git clean -f :/
berfungsi seolah-olah Anda telah menjalankannya di dir repo root. Lihat juga jawaban di kemudian hari yang mencakup submodula dengangit clean -ffxd :/
Gunakan
git clean -f -d
untuk memastikan bahwa direktori juga dihapus.Jangan benar-benar menghapus apa pun, tunjukkan saja apa yang akan dilakukan.
atau
Hapus direktori tidak terlacak selain file tidak terlacak. Jika direktori tidak dilacak dikelola oleh repositori Git yang berbeda, itu tidak dihapus secara default. Gunakan
-f
opsi dua kali jika Anda benar-benar ingin menghapus direktori seperti itu.Anda kemudian dapat memeriksa apakah file Anda benar-benar hilang
git status
.sumber
git clean -n -d
git clean -nd
dangit clean -fd
.Saya terkejut tidak ada yang menyebutkan ini sebelumnya:
Itu berarti interaktif dan Anda akan mendapatkan gambaran umum singkat tentang apa yang akan dihapus dengan menawarkan Anda kemungkinan untuk memasukkan / mengecualikan file yang terpengaruh. Secara keseluruhan, masih lebih cepat dari menjalankan wajib
--dry-run
sebelum pembersihan nyata.Anda harus memasukkan
-d
jika Anda juga ingin menjaga folder kosong. Pada akhirnya, itu membuat alias yang bagus:Yang sedang berkata, pegangan tangan ekstra dari perintah interaktif dapat melelahkan bagi pengguna yang berpengalaman. Hari ini saya hanya menggunakan yang sudah disebutkan
git clean -fd
sumber
git clean -i
hanya berfungsi jika dipanggil dari root copy pekerjaan?git-clean
- Hapus file yang tidak terlacak dari pohon kerjasumber
Jika direktori yang tidak dilacak adalah repositori git sendiri (mis. Submodule), Anda perlu menggunakan
-f
dua kali:git clean -d -f -f
sumber
Cara mudah untuk menghapus file yang tidak terlacak
Untuk menghapus semua file yang tidak terlacak, Cara sederhananya adalah menambahkan semuanya terlebih dahulu dan mengatur ulang repo seperti di bawah ini
sumber
git add --all
dengangit add .
. Jadi Anda bisa melakukannya dengan cara yang lebih singkat di internetgit add . && git reset --hard HEAD
( sangat hati-hati dengan perintah ini) .git clean
?git clean
ternyata juga menghapus semua yang diabaikan. Itu baru saja menghapusnode_modules
folder saya . Melakukan ini pertama-tama akan mem-stage semua file kecuali yang diabaikan, dan kemudian menghapusnya dengan melakukan reset. File yang diabaikan tidak akan disentuh.git clean -n
tetap menjalankannya sebelum melakukan penghapusan (atau penggunaangit clean -i
) yang sebenarnya.git clean
menghapus file yang diabaikan hanya jika Anda menggunakan opsi-x
atau-X
, jika tidak, hanya akan menghapus file yang tidak terlacak.Saya suka
git stash push -u
karena Anda dapat membatalkan semuanyagit stash pop
.EDIT: Juga saya menemukan cara untuk menampilkan file yang tidak terlacak dalam simpanan (misalnya
git show stash@{0}^3
) https://stackoverflow.com/a/12681856/338986EDIT2:
git stash save
ditinggalkan karena mendukungpush
. Terima kasih @ script-serigala.sumber
-u
setara dengan--include-untracked
. Anda dapat menemukan bantuangit help stash
.save
pilihan yang usang dalam mendukungpush
, yang melakukan hal yang sama tetapi lebih. Anda dapat membaca lebih lanjut di sini, /programming/44680028/whats-the-difference-between-git-stash-save-and-git-stash-push/44681952Inilah yang selalu saya gunakan:
Untuk proyek yang sangat besar, Anda mungkin ingin menjalankannya beberapa kali.
sumber
git-clean adalah apa yang Anda cari. Ini digunakan untuk menghapus file yang tidak terlacak dari pohon yang berfungsi.
sumber
Jika perlu untuk menghapus file yang tidak dilacak dari subdirektori tertentu,
Dan gabungan cara untuk menghapus dir / file yang tidak terlacak dan file yang diabaikan.
setelah ini, Anda hanya akan mengubah file dalam
git status
.sumber
Hapus semua folder dan file tambahan dalam submo + repo ini
Ini membuat Anda dalam kondisi yang sama dengan klon baru.
Hapus semua folder dan file tambahan dalam repo ini tetapi tidak dengan submodulanya
Hapus folder tambahan tetapi bukan file (mis. Build atau folder log)
Hapus folder ekstra + file yang diabaikan (tetapi bukan file yang baru ditambahkan)
Jika file tidak diabaikan dan belum check-in maka file itu tetap ada. Catat modal X.
Mode interaktif baru
sumber
git clean -fd
menghapus direktorigit clean -fX
menghapus file yang diabaikangit clean -fx
menghapus file yang diabaikan dan yang tidak diabaikandapat digunakan semua opsi di atas dalam kombinasi sebagai
git clean -fdXx
lihat manual git untuk bantuan lebih lanjut
sumber
git clean -fdXx
menghasilkan pesan kesalahan "fatal: -x dan -X tidak dapat digunakan bersama" (menggunakan git-2.8). Untuk kalimat terakhir dalam jawaban Anda, berikan tautan ke git manual. CheersOK, menghapus file dan folder yang tidak diinginkan yang tidak diinginkan mudah digunakan
git
dalam baris perintah, lakukan saja seperti ini:Periksa ulang sebelum melakukannya karena akan menghapus file dan folder tanpa membuat riwayat apa pun ...
Juga dalam hal ini,
-f
singkatan dari kekuatan dan-d
singkatan untuk direktori ...Jadi, jika Anda ingin menghapus file saja, Anda
-f
hanya dapat menggunakan :Jika Anda ingin menghapus (direktori) dan file, Anda hanya dapat menghapus direktori dan file yang tidak dilacak seperti ini:
Anda juga dapat menggunakan
-x
flag untuk memasukkan file yang diabaikan oleh git. Ini akan sangat membantu jika Anda ingin menghapus semuanya.Dan menambahkan
-i
flag, membuat git meminta Anda izin untuk menghapus file satu per satu saat bepergian.Jika Anda tidak yakin dan ingin memeriksa hal-hal terlebih dahulu, tambahkan
-n
bendera.Gunakan
-q
jika Anda tidak ingin melihat laporan apa pun setelah penghapusan berhasil.Saya juga membuat gambar di bawah untuk membuatnya lebih mudah diingat, terutama saya telah melihat banyak orang bingung
-f
untuk membersihkan folder kadang-kadang atau mencampurnya entah bagaimana!sumber
Cara yang lebih baik adalah dengan menggunakan: git clean
Ini menghapus file yang tidak terlacak, termasuk direktori
(-d)
dan file yang diabaikan olehgit (-x)
.Juga, ganti
-f
argumen dengan-n
untuk melakukan mode interaktifdry-run
atau-i
dan akan memberi tahu Anda apa yang akan dihapus.sumber
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
Lifehack untuk situasi seperti itu yang baru saja saya ciptakan dan coba (yang bekerja dengan sempurna):
Waspadalah! Pastikan untuk melakukan perubahan yang diperlukan (bahkan dalam file yang tidak dilacak) sebelum melakukan ini .
sumber
git add .
git commit -m 'about to delete'
git reset --hard HEAD~
git add . && git reset --hard HEAD
git add . && git reset --hard
git reset --hard
me-reset semua perubahan yang tidak dikomit, TAPI UNTRACKED FILES ke status commit terbaru. Itulah mengapa pertama-tama kita perlugit add .
- yang mem-stage semua file yang tidak terlacak (sehingga mereka direset juga)git clean -f -d -x $(git rev-parse --show-cdup)
berlaku clean ke direktori root, di mana pun Anda menyebutnya dalam pohon direktori repositori. Saya menggunakannya sepanjang waktu karena tidak memaksa Anda untuk meninggalkan folder tempat Anda bekerja sekarang dan memungkinkan untuk membersihkan & melakukan komit langsung dari tempat di mana Anda berada.Pastikan bahwa bendera
-f
,-d
,-x
sesuai dengan kebutuhan Anda:Ada bendera lain juga tersedia, cukup periksa
git clean --help
.sumber
Bagi saya hanya bekerja berikut:
Dalam semua kasus lain, saya menerima pesan "Melewati Direktori" untuk beberapa subdirektori.
sumber
-x
dan hanya digunakangit clean -ffd
untuk menghindari menghapus file di .gitignore.Jika Anda hanya ingin menghapus file yang terdaftar sebagai tidak terlacak oleh 'status git'
Saya lebih suka ini daripada 'git clean' karena 'git clean' akan menghapus file yang diabaikan oleh git, jadi build Anda berikutnya harus membangun kembali semuanya dan Anda juga bisa kehilangan pengaturan IDE Anda.
sumber
Untuk mengetahui apa yang akan dihapus sebelum benar-benar menghapus:
git clean -d -n
Ini akan menampilkan sesuatu seperti:
Akan menghapus sample.txt
Untuk menghapus semua yang tercantum dalam output dari perintah sebelumnya:
git clean -d -f
Ini akan menampilkan sesuatu seperti:
Menghapus sample.txt
sumber
Untuk menghapus file yang tidak dilacak Anda harus terlebih dahulu menggunakan perintah untuk melihat file yang akan terpengaruh oleh pembersihan
Ini akan menunjukkan kepada Anda daftar file yang akan dihapus. Sekarang untuk benar-benar menghapus file-file itu gunakan perintah ini:
sumber
Hati-hati saat menjalankan perintah `git clean`.
Selalu gunakan
-n
sebelum menjalankan perintah yang sebenarnya karena akan menunjukkan kepada Anda file apa yang akan dihapus.Secara default,
git clean
hanya akan menghapus file yang tidak dilacak yang tidak diabaikan. File apa pun yang cocok dengan pola di .gitignore Anda atau file abaikan lainnya tidak akan dihapus. Jika Anda ingin menghapus file-file itu juga, Anda dapat menambahkan-x
perintah bersih.Ada juga mode interaktif yang tersedia
-i
dengan perintah bersihkalau tidak
Jika Anda tidak 100% yakin bahwa menghapus pekerjaan yang tidak dikomit aman, Anda dapat menggunakan simpanan
Ini juga akan menghapus direktori Anda, tetapi memberi Anda keleluasaan untuk mengambil file kapan saja menggunakan simpanan dengan apply atau pop . Kemudian pada titik nanti Anda dapat menghapus simpanan Anda menggunakan:
sumber
git stash save and type some comment as to what this stash was for
git clean -f to remove untracked files from working directory.
Saya telah membahas beberapa dasar-dasar di sini di blog saya, git-intro-basic-commands
sumber
Perintah yang disarankan untuk Menghapus File yang Tidak Dilacak dari git docs adalah git clean
git bersih - Hapus file yang tidak terlacak dari pohon yang berfungsi
Metode yang Disarankan: Mode Interatif dengan menggunakan
git clean -i
sehingga kami dapat memiliki kontrol atasnya. biarkan melihat sisa opsi yang tersedia.Pilihan yang tersedia:
Penjelasan:
1. -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.
2. -f, --force
Jika variabel konfigurasi Git clean.requireForce tidak disetel ke false, git clean akan menolak dijalankan kecuali diberikan -f, -n atau -i.
3. -i, --interaktif
Tunjukkan apa yang akan dilakukan dan bersihkan file secara interaktif. Lihat “Mode interaktif” untuk detailnya.
4. -n, --dry-run
Jangan benar-benar menghapus apa pun, tunjukkan saja apa yang akan dilakukan.
5. -q, --quiet
Diam, hanya laporkan kesalahan, tetapi bukan file yang berhasil dihapus.
6. -e, --exclude =
Selain yang ditemukan di .gitignore (per direktori) dan $ GIT_DIR / info / kecualikan, pertimbangkan juga pola-pola ini dalam rangkaian aturan abaikan yang berlaku.
7. -x
Jangan gunakan aturan abaikan standar yang dibaca dari .gitignore (per direktori) dan $ GIT_DIR / info / kecualikan, tetapi tetap gunakan aturan abaikan yang diberikan dengan opsi -e. Ini memungkinkan menghapus semua file yang tidak dilacak, termasuk membangun produk. Ini dapat digunakan (mungkin bersamaan dengan reset git) untuk membuat direktori kerja yang masih asli untuk menguji build yang bersih.
8. -X
Hapus hanya file yang diabaikan oleh Git. Ini mungkin berguna untuk membangun kembali semuanya dari awal, tetapi menyimpan file yang dibuat secara manual.
sumber
uggested
tapi itu hanya "uggestion
lolgit clean
Perintah normal tidak menghapus file yang tidak dilacak dengan sayagit version 2.9.0.windows.1
.sumber
Kita dapat dengan mudah menghapus file-file lokal yang tidak terlacak dari pohon git saat ini dengan menggunakan komentar git di bawah ini.
Contoh:
Tautan:
sumber
git clean -ffdx
adalah solusinyasumber
akan menghapus file yang tidak dilacak dari git saat ini
ketika Anda ingin menghapus direktori dan file, ini hanya akan menghapus direktori dan file yang tidak terlacak
sumber
oh-my-zsh dengan zsh menyediakan alias-alias yang bagus melalui plugin git. Mereka dapat digunakan dalam bash juga.
gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'
gclean
menghapus direktori yang tidak dilacak selain file yang tidak dilacak .gpristine
atur ulang perubahan lokal, hapus direktori yang tidak dilacak , file yang tidak dilacak dan jangan gunakan aturan abaikan standar yang dibaca dari .gitignore (per direktori) dan $ GIT_DIR / info / kecualikan, tetapi tetap gunakan aturan abaikan yang diberikan dengan opsi -e. Ini memungkinkan menghapus semua file yang tidak dilacak, termasuk membangun produk. Ini dapat digunakan (mungkin bersamaan dengan reset git) untuk membuat direktori kerja yang masih asli untuk menguji build yang bersih .sumber
bash
. Saya mengedit jawaban saya untuk mencerminkan hal itu.Saya suka menggunakan
git stash
perintah, nanti Anda bisa mendapatkan file simpanan dan perubahan.git clean
juga merupakan pilihan yang baik tetapi sangat tergantung pada kebutuhan Anda. di sini adalah penjelasan tentang git simpanan dan git bersih, 7.3 Git Tools - Stashing and Cleaningsumber