2011-10-30 34 views
16

Bir dizindeki dosyayı göreli yoldan yok saymaya çalışıyorum. Örneğin. lib/file.f ağacında çalışan birkaç dizinim var ve bu dosyanın tüm oluşumlarının göz ardı edilmesini istiyorum.git Eşleşen birden çok dosyayı yok sayma

'u denedim, ancak bu çalışmaz. senin .gitignore yılında

cevap

21

Yeri

*/lib/file.f 

. Bu, .gitignore dizininin project dizininde olduğunu varsayarak, project/<DIR>/lib/file.f formundaki herhangi bir dosyanın yok sayılmasına neden olur. da böyle devam

*/*/lib/file.f 
.gitignore için

ve eklemek olurdu, git lib/file.f iki dizinleri aşağı görmezden yapmak için. Tabii

Vastly daha basit, file.f adlı tüm dosyaları engellemek için .gitignore yılında

*file.f 

yerleştirmek olabilir, ancak soru gözardı etmemeye isteyen bu isimde en az bir dosya var önermek gibi görünüyor olacaktır. Ayrıca

+2

Ben çalışmıyor 'file.f' bulmak. Ancak, '* file.f' yapar. – Holf

+0

@Holf 'file.f' çalışmaz, çünkü dosyayı kendi yolunda, yolsuz olarak (ve muhtemelen projenizin kök klasöründe' file.f' var demektir). Bu yüzden, _unutbu_'ın cevabı tüm yollara tam yol gösteriyor. '' File.f' çalışır, çünkü '' 'joker karakterini kullandığın için ve böylece kalıpla uyuşan _any dosyası_ igngunu göz ardı edersiniz - gerçekten ne elde etmek istediniz? – trejder

5

size sadece gözardı ne olduğunu kontrol etmek için, git önbellekten dosyayı kaldırmak isteyebilirsiniz: Zaten istiyorsanız indeksi

0

git için dosyayı eklenirse

git rm --cached lib/file.f 

şudur Belirli bir klasör altında tüm alt klasörleri belirtmek için /**/. Bir /src/main/ klasördeki ve alt klasörlerdeki tüm file.f dosyaları göz ardı etmek için kullanın:

/src/main/**/file.f 
İlgili konular