.gitignore and why you don't version dependencies

The whole point in having a package management system is to save the trouble of packaging the dependencies along with your distribution. So when you already have a package.json and an amazing package management system like NPM, why do you still version your node_modules, I wonder?

This happens when you do a 

```zsh
     git add .
```
So what this guys does is add all the file. This should tell you that the add function takes regex as an argument and adds all in the directory to the tree. This is wrong, more so wrong when you don't have a gitignore.