I include bower_components/ in .gitignore and use grunt-bowercopy[0] to move the files you actually want from bower_components/ to public/{js,css} or wherever. Files get committed once they're in public/ and I only re-run the grunt task when I want to upgrade a lib. I can understand people thinking this is overkill for a small project, but when you have dozens of libraries it's nice to have dependencies and their versions clearly defined.