如何通过pygit2进行git合并

时间:2014-02-09 15:48:53

标签: python git libgit2 pygit2

我尝试将分支合并到master:

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没有改变。

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

1 个答案:

答案 0 :(得分:4)

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

这与您想要更改引用的任何其他时间相同。在这种情况下,您希望转到当前分支,通过将HEAD解析为非符号引用并设置其目标来执行此操作。

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