Note about the "[VP]" prefix: this class just doesn't care. When the commit is first created,
external code will typically put prefix-less subject into this object. Only when
{@link VersionPress\Git\GitRepository::commit()} executes the commit itself will get the [VP] prefix.
On the other hand, when the commit is read from the repository and parsed back into this object,
it will typically have the [VP] prefix. It doesn't matter as VersionPress typically only
works with the commit body and its VP tags.