Вы хотите использовать /*
вместо *
или */
в большинстве случаев
Использование *
допустимо, но работает рекурсивно. Это не будет смотреть на каталоги с тех пор. Люди рекомендуют снова использовать !*/
для внесения в белый каталог, но на самом деле лучше занести в черный список папку самого высокого уровня с /*
# Blacklist files/folders in same directory as the .gitignore file
/*
# Whitelist some files
!.gitignore
!README.md
# Ignore all files named .DS_Store or ending with .log
**/.DS_Store
**.log
# Whitelist folder/a/b1/ and folder/a/b2/
# trailing "/" is optional for folders, may match file though.
# "/" is NOT optional when followed by a *
!folder/
folder/*
!folder/a/
folder/a/*
!folder/a/b1/
!folder/a/b2/
!folder/a/file.txt
# Adding to the above, this also works...
!/folder/a/deeply
/folder/a/deeply/*
!/folder/a/deeply/nested
/folder/a/deeply/nested/*
!/folder/a/deeply/nested/subfolder
Приведенный выше код игнорирует все файлы, кроме .gitignore
, README.md
, folder/a/file.txt
, folder/a/b1/
и folder/a/b2/
и всего, что содержится в этих двух последних папках. (И файлы .DS_Store
и *.log
будут игнорироваться в этих папках.)
Очевидно, я мог бы сделать, например, !/folder
или !/.gitignore
тоже.
Дополнительная информация: http://git -scm.com / docs / gitignore