git projesindeki herhangi bir 'bin' dizinini yok sayma

Şöyle bir dizin yapım var:

.git/
.gitignore
main/
  ...
tools/
  ...
...

main ve tools dizinlerinin içinde ve herhangi bir seviyedeki diğer dizinlerde, yok saymak istediğim bir 'bin' dizini olabilir (ve altındaki her şeyi de yok saymak istiyorum). Bu kalıpların her birini .gitignore'da denedim ancak hiçbiri çalışmıyor:

/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too

Biri bana yardım edebilir mi? İlk desen (çalışıyor olması gerektiğini düşündüğüm) bunu yaparsam gayet iyi çalışıyor:

/main/**/bin/**/*

Ancak her üst düzey dizin için bir girdiye sahip olmak istemiyorum ve her yeni bir dizin eklediğimde .gitignore'u değiştirmek zorunda kalmak istemiyorum.

Bu, en son msysgit'i kullanan Windows üzerinde.

DÜZENLEME: bir şey daha var, adlarında 'bin' alt dizesi olan dosyalar ve dizinler var, bunların göz ardı edilmesini istemiyorum :)

Çözüm

1.8.2 sürümünden önce, ** .gitignore içinde herhangi bir özel anlama sahip değildi. 1.8.2 sürümünden itibaren git, sıfır veya daha fazla alt dizin anlamına gelen ** ifadesini desteklemektedir (bkz. sürüm notları).

Bir dizin ağacında geçerli seviyenin altındaki herhangi bir yerde bin olarak adlandırılan tüm dizinleri yok saymanın yolu, kalıbı olan bir .gitignore dosyası kullanmaktır:

bin/

mansayfasında, benzer bir kalıp kullanarakfoo` adlı bir dizini yok saymanın bir örneği vardır.

Düzenle: Git dizininizde artık izlemek istemediğiniz herhangi bir bin klasörü varsa, bunları açıkça kaldırmanız gerekir. Git, artık yeni bir .gitignore kalıbıyla eşleştikleri için zaten izlenmekte olan yolları izlemeyi bırakmayacaktır. Yalnızca dizinden (-önbelleğe alınmış) yinelemeli olarak (-r) bir klasör kaldırma (rm) çalıştırın. Kök bin klasörü için komut satırı örneği:

git rm -r --cached bin
Yorumlar (9)

Hayalinizdeki .gitignore şöyle görünüyor:

bin/

en üst seviyede.

Yorumlar (4)

Burada bahsedildiğini görmedim, ancak bu büyük/küçük harfe duyarlı gibi görünüyor. Bir kez /Bin olarak değiştirdiğimde dosyalar beklendiği gibi yok sayıldı.

Yorumlar (2)