geddski/grunt-release — pull request #42 by niclashoyer (2013-08-18 18:59:56+00:00)
Title: Added support for multiline commit messages

I ran into an issue with multiline git commit messages. I wanted to add `[ci skip]` to a release commit. I tried setting

```
release.options.commitMessage = 'Release <%= version %>\n\n[ci skip]';
```

which indeed printed out the following in verbose mode

```
Running: git commit package.json -m "Release 0.0.2-5

[ci skip]"
```

but it seems that `shelljs.exec` has problems with multiline commands, as the execution just hangs and never completes, which also causes [timeouts on travis builds](https://travis-ci.org/semfact/garret/jobs/10337822#L1134). It *may* be a bug in shelljs, but an [answer on StackOverflow](http://stackoverflow.com/questions/5064563/add-line-break-to-git-commit-m-from-command-line/5070502#5070502) also stated that it is much better to use the `-m` flag instead of newlines.

So I added the ability to pass an array to `commitMessage` where each element will be parsed as an argument to `git commit` with the `-m` flag which sets multiline commit messages accordingly (even on windows).