How to Set a Default Commit Message

By  on  

Having a default commit message is really useful for a number of reasons:

  • It can formalize your commit messages
  • It serves as a good reminder for the information you should add to your commit message, like issue number
  • If you set it to "Drunk AF, don't accept this"

To set a default commit message on your local machine, start by executing the following from command line:

git config --global commit.template ~/.gitmessage

This tells your local git config to pull the text from ~/.gitmessage as the default commit message. You could set the text to something like:

Fix Issue #{number}: {description}

R+: {reviewer}

Of course, if you set your commit message via git commit -m {description}, the default will not be used, so it's a win-win!

Recent Features

  • By
    I’m an Impostor

    This is the hardest thing I've ever had to write, much less admit to myself.  I've written resignation letters from jobs I've loved, I've ended relationships, I've failed at a host of tasks, and let myself down in my life.  All of those feelings were very...

  • By
    CSS Gradients

    With CSS border-radius, I showed you how CSS can bridge the gap between design and development by adding rounded corners to elements.  CSS gradients are another step in that direction.  Now that CSS gradients are supported in Internet Explorer 8+, Firefox, Safari, and Chrome...

Incredible Demos

  • By
    Elegant Overflow with CSS Ellipsis

    Overflow with text is always a big issue, especially in a programmatic environment. There's always only so much space but variable content to add into that space. I was recently working on a table for displaying user information and noticed that longer strings were...

  • By
    MooTools-Like Element Creation in jQuery

    I really dislike jQuery's element creation syntax. It's basically the same as typing out HTML but within a JavaScript string...ugly! Luckily Basil Goldman has created a jQuery plugin that allows you to create elements using MooTools-like syntax. Standard jQuery Element Creation Looks exactly like writing out...

Discussion

  1. Jake

    What if you want to include some of the lines from the default commit message in your template? One thing that is not indicated here is that the content of the default message is included with your template content (combined) when the actual commit template is displayed in the editor.

    See: commit.template section in https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

    Or test it yourself..

    BUT! What if you need to change the order that the default commit message lines appear in your templated commit message? For example..

    The default git commit message (as of this date) is:
    =======================================================================

    # Please enter the commit message for your changes. Lines starting
    # with ‘#’ will be ignored, and an empty message aborts the commit.
    #
    # On branch master
    #
    # Initial commit
    #
    # Changes to be committed:
    # new file: blah
    #
    # ———————— >8 ————————
    # Do not modify or remove the line above.
    # Everything below it will be ignored.
    diff –git a/blah b/blah
    new file mode 100644
    index 0000000..e69de29

    =======================================================================

    But what if you need it to be:

    =======================================================================
    Changes to be committed: new file: blah
    On branch master

    Initial commit

    # ———————— >8 ————————
    # Do not modify or remove the line above.
    # Everything below it will be ignored.
    diff –git a/blah b/blah
    new file mode 100644
    index 0000000..e69de29

    =======================================================================

    Where “Initial commit” is included / omitted (as it normally is) based on whether it is the initial commit or not. In other words, you want to reformat the default commit message’ content so that when it is combined with your template it will read in the order and format that you want it.

    Is there a way to do this?

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!