Flags for creating the commit.
If allow_empty_commit is specified, a commit with no changes from the prior commit (an "empty" commit) is allowed. Otherwise, commit creation will be stopped.
Encoding for the commit message; leave NULL for default.
Extra headers can be specified as an array of field name and value pairs.
Number of extra headers
Callback payload (optional)