我实际上是在尝试做一个“git merge --no-ff branch”来合并我的分支。查看 Pygit2 文档,我不确定这样做的正确方法是什么。直接的想法是做这样的事情:
repo.merge(branch.target)
但是,我没有看到任何与 no-fastforward 合并的选项。有没有人广泛使用 pygit2 可以给我任何见解?非常感谢所有帮助。
但是,我没有看到任何与 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])