Daha önce de söylendiği gibi, statü dışında bırakmak için şunu kullanın:
git status -uno # must be "-uno" , not "-u no"
Bunun yerine şu anda izlenmeyen dosyaları kalıcı olarak yok saymak istiyorsanız, projenizin kökünden başlatabilirsiniz:
git status --porcelain | grep '^??' | cut -c4- >> .gitignore
Sonraki her çağrı git statusbu dosyaları açıkça yok sayacaktır.
GÜNCELLEME : Yukarıdaki komutun küçük bir dezavantajı vardır: .gitignorehenüz bir dosyanız yoksa gitignore'unuz kendisini yok sayacaktır! Bunun nedeni dosyanın çalıştırılmadan .gitignoreönce oluşturulmasıdır git status --porcelain. Dolayısıyla, .gitignorehenüz bir dosyanız yoksa şunu kullanmanızı öneririm:
echo "$(git status --porcelain | grep '^??' | cut -c4-)" > .gitignore
Bu , dosya oluşturulmadan önce tamamlanan bir alt kabuk .gitignoreoluşturur.
KOMUT AÇIKLAMASI çok oy aldığım için (teşekkür ederim!) Komutu biraz açıklamam gerektiğini düşünüyorum:
git status --porcelainyerine kullanılır git status --shortçünkü manuel devletler "komut dosyaları için bir kolay ayrıştırma biçiminde çıkış verin. Bu kısa çıkışına benzer, ancak git sürümlerinde kararlı ve bağımsız kullanıcı yapılandırma kalacaktır." Böylece hem ayrıştırılabilirliğe hem de kararlılığa sahibiz;
grep '^??'sadece ile başlayan ??ve git durum kılavuzuna göre izlenmeyen dosyalara karşılık gelen satırları filtreler ;
cut -c4- her satırın ilk 3 karakterini kaldırır, bu da bize izlenmeyen dosyanın sadece göreceli yolunu verir;
|semboller borular , aşağıdaki komutun girişine önceki komut çıkış geçmesi;
>>ve >semboller yönlendirme operatörler Bir dosya veya üzerine yazma önceki komutun çıktısını eklemeye, / sırasıyla yeni bir dosya oluşturur.
BAŞKA VARIANT tercih edenler için kullanansed yerine grepve cutburada başka bir yol:
git status --porcelain | sed -n -e 's/^?? //p' >> .gitignore