It has flaws similar to including the resulting code, such as the binaries of the project itself; anyone who updates packages will now have a bunch of commits that could potentially contradict those made by someone else who updated the packages, and it can become very messy for a zero win.
My .gitignore projects for .NET usually have the following:
packages*
!packages/repositories.config
, , "", repositories.config, , nuget.