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.
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.
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"
foreverhead -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 messagehttps://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.
Well, actually, there is a limit of ~5MB for JGit.
Of course, I've got to ask why anyone would do that?! Especially since every subsequent clone would need to include that data. I'd say that if you're going beyond a few KB then you really should be questioning your motives.