我想使用libgit2在裸仓库中预览冲突提交,这意味着没有工作目录。
已使用git_merge_commits
git_index_has_conflicts
和git_index_conflict_get
这些功能来获取相关信息。
主要代码如下:
git_index *index;
int error = git_merge_commits(&index, repo, git_commit1, git_commit2, NULL);
int conflict_count = git_index_has_conflicts(index);
git_oid index_tree_oid, index_commit_oid;
git_tree *index_tree;
if(conflict_count == 0) {
// do commit the index
} else {
// solve conflict
const git_index_entry *ancestor = NULL,
*ours = NULL,
*theirs = NULL;
error = git_index_conflict_get(
&ancestor,
&ours,
&theirs,
index,
"file2");
error_check(error);
...
如何在缓冲区中预览合并
包含这样的<<<< HEAD
?
aaaaaaaa
bbbbbbbb22222222
<<<<<<< HEAD
bbbbbbbb11111111
bbbbbbbb11111111
=======
bbbbbbbb22222222
>>>>>>> b3
aaaaaaaa
aaaaaaaa
aaaaaaaa
当前,合并中只有一个文件会发生冲突。
谢谢