如何通过pygit2进行git合并


问题内容

我尝试将分支合并到母版中:

repo = pygit2.Repository("/path/to/repo/")
branch = repo.lookup_branch("upstream/branch", pygit2.GIT_BRANCH_REMOTE)
oid = branch.target
merge_result = repo.merge(oid)

而且merge_result包含ff
oid(如documentaion中所述),并且repo不变。

接下来我该怎么做才能更改存储库?


问题答案:

合并功能执行合并(或在这种情况下告诉您可以跳过它),但是是否要将当前分支移动到新位置取决于您(或工具的用户)。

这样做与您要更改参考的任何其他时间相同。在这种情况下,您要转到当前分支,方法是解析HEAD为非符号引用并设置其目标。

repo.lookup_reference('HEAD').resolve().target = merge_result.fastforward_oid