merge()后如何判断是否需要git_commit_create()?

How to determine if need to git_commit_create() after the merge()?

当我使用 libgit2 更新数据时,pull 似乎会创建不必要的短期分支和合并,这是一个令人头疼的问题。并且每次合并都会产生一个新的oid,所以在合并提交之前应该有一个函数来确定是否需要合并提交。想知道这是否是一个好习惯,那么最好的方法是什么?

如果要分析两个分支之间是否需要合并,或者是否可以快速转发,请使用git_merge_analysis函数:

git_merge_analysis_t analysis;
git_merge_preference_t preference;
int error = git_merge_analysis(&analysis, &preference, repo, merge_heads, merge_head_len);

if (analysis == GIT_MERGE_ANALYSIS_FASTFORWARD) {
    /* You can simply do a fast-forward */
} else {
    /* You need to do a true merge */
}

您可能希望检查 preference 以了解用户是否要求永不快进。