Eu enfrentei o mesmo problema.
Nenhuma das soluções acima funcionou para mim. E eu acho que é uma solução ruim para manter vários arquivos .ignore.
Foi assim que resolvi.
**/packages/*
!**/packages/repositories.config
A combinação de dois asteriscos corresponderá a qualquer sequência de pastas. Achei que omitir os asteriscos teria o mesmo efeito, mas aparentemente eu (nós) estávamos errados, pois não parece funcionar.
O modelo oficial .gitignore para Visual Studio recomenda as seguintes soluções:
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
EDITAR: Você pode usar https://www.gitignore.io para gerar o arquivo .ignore para o seu projeto favorito :-)
.gitignore
si ignorado. +1