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.

  • git push origin master causing a fatal error
  • Git Gui: How to exclude unnecessary files from rescan
  • Deciding a Git workflow
  • Git SVN and merging branches
  • Which solution is better in production mode. Forking or new Repository?
  • Creating a git alias with a parameter
  • How do I add an existing XCode (4.5) project to BitBucket
  • How do I get back to my earlier commits after fixing a forgotten fork?
  • git push origin master -> DENIED by fallthru
  • Git: Limit files that are pushed to remote repo
  • What is the best way to discard all your changes (with untracked files) on a git branch?
  • AutoUpdater: Using GIT for client Setup & auto-update
  • 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.