Merges the given commit(s) into HEAD, writing the results into the working directory. Any changes are staged for commit and any conflicts are written to the index. Callers should inspect the repository's index after this completes, resolve any conflicts and prepare a commit.
For compatibility with git, the repository is put into a merging
state. Once the commit is done (or if the uses wishes to abort),
you should clear this state by calling
git_repository_state_cleanup()
.
the number of heads to merge
0 on success or error code