Seperti yang sudah dikatakan, untuk mengecualikan dari status gunakan saja:
git status -uno # must be "-uno" , not "-u no"
Jika Anda ingin mengabaikan file yang saat ini tidak terlacak secara permanen, dari root proyek Anda, luncurkan:
git status --porcelain | grep '^??' | cut -c4- >> .gitignore
Setiap panggilan selanjutnya ke git statussecara eksplisit akan mengabaikan file-file itu.
UPDATE : perintah di atas memiliki sedikit kelemahan: jika Anda tidak memiliki .gitignorefile, gitignore Anda akan mengabaikannya sendiri! Ini terjadi karena file .gitignoredibuat sebelum git status --porcelaindijalankan. Jadi, jika Anda belum memiliki .gitignorefile, saya sarankan menggunakan:
echo "$(git status --porcelain | grep '^??' | cut -c4-)" > .gitignore
Hal ini menciptakan subkulit yang melengkapi sebelum itu .gitignorefile yang dibuat.
PERINTAH MENJELASKAN karena saya mendapatkan banyak suara (terima kasih!) Saya pikir saya akan lebih baik menjelaskan sedikit perintah:
git status --porcelaindigunakan bukan git status --shortkarena menyatakan secara manual "Berikan output dalam format skrip yang mudah diurai. Ini mirip dengan keluaran pendek, tetapi akan tetap stabil di versi git dan terlepas dari konfigurasi pengguna." Jadi kita memiliki parseabilitas dan stabilitas;
grep '^??'memfilter hanya baris yang dimulai dengan ??, yang, menurut manual status git , sesuai dengan file yang tidak dilacak;
cut -c4- menghapus 3 karakter pertama dari setiap baris, yang memberi kita hanya jalur relatif ke file yang tidak dilacak;
- itu
| simbol pipa , yang lulus output dari perintah sebelumnya ke input dari perintah berikut;
- yang
>>dan >simbol operator redirect , yang menambahkan output dari perintah sebelumnya ke file atau menimpa / membuat file baru, masing-masing.
VARIAN LAIN bagi mereka yang lebih suka menggunakansed daripada grepdan cut, inilah cara lain:
git status --porcelain | sed -n -e 's/^?? //p' >> .gitignore