1

我实际上是在尝试做一个“git merge --no-ff branch”来合并我的分支。查看 Pygit2 文档,我不确定这样做的正确方法是什么。直接的想法是做这样的事情:

repo.merge(branch.target)

但是,我没有看到任何与 no-fastforward 合并的选项。有没有人广泛使用 pygit2 可以给我任何见解?非常感谢所有帮助。

4

1 回答 1

3

但是,我没有看到任何与 no-fastforward 合并的选项。

那是因为,从pygit2 合并文档

它只进行合并,在 fastforward 的情况下不提交也不更新分支引用

这意味着您可以决定在合并本身完成后创建一个新的提交。

您现在可以检查索引文件是否存在冲突,如果存在冲突,请返回给用户解决。
一旦没有剩余冲突,您就可以与这两个父级创建一个提交。

other_branch_tip = '5ebeeebb320790caf276b9fc8b24546d63316533'
repo.merge(other_branch_tip)

user = repo.default_signature()
tree = repo.index.write_tree()
new_commit = repo.create_commit('HEAD', user, user, tree,
                                [repo.head.target, other_branch_tip])
于 2014-10-11T05:19:40.160 回答