Белый список и подкаталоги в Git - PullRequest
74 голосов
/ 06 февраля 2012

Я создал белый список только для текстовых файлов.

*
!*.txt

Теперь у меня есть неотслеживаемый текстовый файл в подкаталоге - sub/dir/file.txt, и он НЕ отображается (игнорируется). Текстовые файлы в корневом каталоге показаны, однако.

Почему это так и как это исправить?

1 Ответ

118 голосов
/ 10 февраля 2012

Если вы попробуете это таким образом, это не получится, потому что вы в конечном итоге внесете в черный список каталоги в вашей структуре.

Чтобы решить, вы хотите занести в черный список все, что не является каталогом и не относится к одному из типов файлов, которые вы хотите зафиксировать, , а не занести в черный список каталоги .

Файл .gitignore, который будет делать это:

# First, ignore everything
*
# Now, whitelist anything that's a directory
!*/
# And all the file types you're interested in.
!*.one
!*.two
!*.etc

Проверено это в трехуровневой структуре белого списка для .txt файлов при наличии *.one, *Файлы 1013 * и *.three, использующие .gitignore, расположенные в корневом каталоге хранилища, работают для меня.Вам не нужно будет добавлять файлы .gitignore во все каталоги вашей структуры.

Информация, которую я использовал, чтобы выяснить ответ, была, среди прочего, this (stackoverflow.com).

...