Using `grep` is going to stop this from working on Windows. Also would fail if they were tagging `1.0` and `0.1.0` already existed. I think this would work instead (I haven't tested though):

```
function escapeRE(s) {
    return s.replace(/[\-\/\\^$*+?.()|[\]{}]/g, '\\$&');
}
// ...
exec('git tag', function(err,stdout, stderr) {
  var tagRE = new RegExp('^\\s*' + escapeRE(tag) + '\\s*$');
  var isListed = stdout.split('\n').some(tagRE.test.bind(tagRE));
  next(isListed);
});
```