Merge 如何确定合并()后是否需要git_commit_create()?

Merge 如何确定合并()后是否需要git_commit_create()?,merge,pull,libgit2,Merge,Pull,Libgit2,当我使用libgit2更新数据时,pull似乎会创建不必要的短期分支和合并,这是一个令人头痛的问题。每次合并都会产生一个新的oid,因此应该有一个函数来确定在合并提交之前是否需要合并提交。想知道这是否是一种好的做法,那么最好的方法是什么?如果要分析两个分支之间是否需要合并,或者是否可以快速转发,请使用以下函数: git_merge_analysis_t analysis; git_merge_preference_t preference; int error = git_merge_analy

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

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

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 */
}

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

谢谢您的回答sincerely@Edward汤姆森如何获得“合并头”参数。这是你想要合并的东西。如果要将分支
foo
合并到分支
master
,则获取
foo
指向的带注释的_commit和
master
指向的带注释的_commit
merge_heads
是一个包含这两个提交的数组。好的,再次感谢。