Maximum commit message size

Is there any size limit to the Git commit message?
I searched trough the web but cannot find any relevant mention about this except this one.

However, that one does not answer my question.

  • How to git-log all branches that contain a specific commit
  • Unable to negotiate a key exchange method with Mina deployment
  • How can I merge mysql workbench (*.mwb) diagram with git If I know how to make a text representation of it?
  • Force push current branch
  • How can I quickly check the value of ORIG_HEAD?
  • Bitbucket/Github: permission denied public key
  • How to detect changes in “repo” for continuous integration in Jenkins?
  • git clone stuck during a Capistrano deploy
  • 2 Solutions collect form web for “Maximum commit message size”

    https://github.com/git/git/blob/master/strbuf.h defines the len field to be a size_t. So at the very least, the maximum length has an upper bound at the maximum value of size_t on your platform of choice.

    Empirically, I think the answer is no. This worked (that’s a ~100MB commit message):

    yes | head -c 100000000 | git commit -F - > /dev/null
    

    Command parts explanation:

    • yes repeats “y\n” forever
    • head -c 100000000 takes only the first 100,000,000 bytes (~100MB)
    • git commit -F - commits with the passed-in commit message (this won’t work if you haven’t staged any changes to commit)
    • > /dev/null hides the output from the command, which includes Git repeating back the very long commit message
    Git Baby is a git and github fan, let's start git clone.