首页 > 解决方案 > 如何确定merge()后是否需要git_commit_create()?

问题描述

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

标签: mergepulllibgit2

解决方案


如果您想分析两个分支之间是否需要合并,或者如果它是可快速转发的,请使用以下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以了解用户是否要求从不快进。


推荐阅读