Como Gitnore todos os arquivos, exceto dois subdiretórios?

Como ignoro todos os arquivos em um projeto, exceto dois subdiretórios? Não quero incluir todo o Wordpress no Git, mas quero incluir os temas personalizados. Eu tenho dois diretórios irmãos, então também não quero dois projetos Git separados.

.gitignore
src/
!src/wp-content/themes/chocolat-child/
!src/wp-content/themes/theme2

É uma nova inicialização do repositório sem histórico ou confirmação. Quando verifico o status, ele está ignorando os subdiretórios.

>git status
# Initial commit
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#       .gitignore
#       .project
#       .settings/

Eu vi essa seção na documentação, mas deve haver uma solução alternativa:http://git-scm.com/docs/gitignore

Um prefixo opcional "!" que nega o padrão; qualquer arquivo correspondente excluído por um padrão anterior será incluído novamente. Não é possível incluir novamente um arquivo se um diretório pai desse arquivo for excluído. O Git não lista os diretórios excluídos por motivos de desempenho; portanto, qualquer padrão nos arquivos contidos não tem efeito, não importa onde eles estejam definidos. Coloque uma barra invertida ("\") na frente do primeiro "!" para padrões que começam com um literal "!", por exemplo, "! important! .txt".

Eu vi essa pergunta, mas era devido a um .gitignore oculto do Drupal, por isso não resolve o meu problema:Ignorando um diretório ... mas não um subdiretório ou dois

versão

git versão 1.8.1.msysgit.1

questionAnswers(2)

yourAnswerToTheQuestion