DEV Community

Stefan Judis
Stefan Judis

Posted on • Originally published at stefanjudis.com on

TIL: git commit accepts several message flags (-m) to allow multiline commits

When you use git on the command line you might have used the message flag (-m). It allows developers to define commit messages inline when calling git commit.

git commit -m "my commit message"
Enter fullscreen mode Exit fullscreen mode

I'm not the biggest fan of this approach because I prefer to edit the commit message in vim (which I only use for writing commit messages). It gives me the opportunity to double-check the files I'm committing.

Today I learned that the git commit command accepts multiple message flags. 😲

It turns out that you can use the -m option multiple times. The git documentation includes the following paragraph:

If multiple -m options are given, their values are concatenated as separate paragraphs

If you run the following command

git co -m "commit title" -m "commit description"
Enter fullscreen mode Exit fullscreen mode

it will result in this commit.

Author: stefan judis <stefanjudis@gmail.com>
Date:   Tue Jul 7 21:53:21 2020 +0200

    commit title

    commit description

 test.txt | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
Enter fullscreen mode Exit fullscreen mode

You can use multiple -m flags to create "multiline commits", and I have to admit that this can be very handy in some cases.

Edited: Several people pointed out that you can achieve the same commit structure including a title and body (multiple lines) by opening quotes, pressing enter and closing the commit with quotes again.

git commit -m "commit title
>
> commit description"
[master 2fe1ef8] commit title
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test-2.txt
Enter fullscreen mode Exit fullscreen mode

If you want to see this command in action, I shared a short terminal session on Twitter with a little video.

And thanks to Stephan Schneider who shared that little git tip in our company slack. πŸ™‡β€β™‚οΈ

Top comments (0)