Option 2 works for us over in REEF. We are a bit (too) religious about it [0], but it creates really nice commit messages[1].
We require each commit message to start with a one line summary which names the JIRA in brackets and describes the change, e.g. `[REEF-1234] Added integration with mxnet`. The remainder of the commit message is valid markdown, and they all end in a block which contains explicit references to the JIRA and pull request: ``` JIRA: [REEF-1234](https://issues.apache.org/jira/browse/REEF-1234) Pull Request: This closes #1234 ``` The hope is that this structure will eventually proof useful in automated analysis. Then again, we haven't done that ever :) Markus [0]: https://cwiki.apache.org/confluence/display/REEF/Commit+Messages [1]: https://github.com/apache/reef/commits/master