git_merge_analysis должен вернуть GIT_MERGE_ANALYSIS_FASTFORWARD , когда это возможно. В противном случае, если предположить, что он еще не обновлен (значения oid коммитов равны), обычный результат указывает на то, что слияние необходимо как обычно, то есть когда слияние в ускоренном режиме невозможно.
Лично, когда я впервые использовал libgit2, я регулярно смешивал «наши» и «их», что приводило к неожиданным результатам. Поскольку метод анализа сравнивает «их» с текущим HEAD, вы можете получить актуальный результат, если «их» равен или уже является предком коммита, на который ссылается в настоящее время HEAD (который мог быть установлен в результате предыдущего слияния). Принимая во внимание, что если что-то поменять местами, вы получите быстрый результат, если HEAD был предком «их».