Git'in dizinleri değil yalnızca dosyaları izlediğini unutmayın. Bu nedenle bir dizin eklemek mümkün değildir, yalnızca içeriğini eklemek mümkündür .
.gitignoreBununla birlikte, bağlamında git, dizinleri anlıyor gibi davranıyor çünkü
Bir dosyanın üst dizini dışarıda bırakılırsa, bir dosyayı yeniden dahil etmek mümkün değildir.
https://git-scm.com/docs/gitignore#_pattern_format
Dışlama kalıpları için bu ne anlama geliyor? Onları ayrıntılı olarak inceleyelim:
bin
Bu görmezden geliyor
- adlı dosyalar
bin.
- adlı klasörlerin içeriği
bin
Göz ardı edilen bindosya ve klasörleri sonraki !girişleri ekleyerek beyaz listeye ekleyebilirsiniz, ancak adlı klasörlerin içeriğini beyaz listeye alamazsınız .bin
bin
!bin/file_in_bin # has no effect, since bin/ is blacklisted!
!bin/* # has no effect, since bin/ is blacklisted!
!file_in_bin # has no effect, since bin/ is blacklisted!
!bin # this works
bin/
Yukarıdaki ile aynı, ancak adı verilen dosyalarla eşleşmiyor bin. Sona eklemek /, git'e yalnızca dizinlerle eşleşmesini söyler.
bin/*
Bu görmezden geliyor
- adlı bir klasörde bulunan dosyalar
bin
- adlı klasörlerin doğrudan alt klasörlerinin içeriği
bin
bin/* # blacklists bin/file_in_bin and bin/subfolder/
!bin/subfolder/file_in_sub # has no effect, since bin/subfolder is blacklisted!
!bin # whitelists files named bin/bin, since bin/ itself is not blacklisted
!bin/ # has no effect, since bin/ itself is not blacklisted
!bin/file_in_bin # works since bin/ itself is not blacklisted
!file_in_bin # works too
!bin/subfolder # works (so implicitly whitelists bin/subfolder/file_in_sub)
!bin/subfolder/ # works just as well
!bin/* # works for file_in_bin and subfolder/
bin/**
Bu görmezden geliyor
- içeriği
bin
- içindeki alt klasörlerin içeriği (herhangi bir iç içe geçme düzeyi)
bin
bin/** # blacklists bin/file_in_bin and
# bin/subfolder/ and bin/subfolder/file_in_sub and
# bin/subfolder/2/ and bin/subfolder/2/file_in_sub_2
!bin/subfolder/file_in_sub # has no effect, since bin/subfolder is blacklisted
!bin/subfolder/2/ # has no effect, since bin/subfolder is blacklisted
!bin/subfolder/2/file_in_sub_2 # has no effect, since bin/subfolder is blacklisted
!bin/subfolder # works only in combinations with other whitelist entries,
# since all contents of subfolder are blacklisted (1)
!bin/file_in_bin # works since bin itself is not blacklisted
!bin/* # works for file_in_bin and subfolder; see (1)