【问题标题】:Pygit2 - Merging a branch with no fast forwardPygit2 - 合并没有快进的分支
【发布时间】:2014-10-11 02:03:02
【问题描述】:

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

repo.merge(branch.target)

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

【问题讨论】:

  • 看来您唯一的选择可能是覆盖 GIT_MERGE_OPTS_INIT libgit2 常量

标签: python git merge libgit2 pygit2


【解决方案1】:

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

那是因为,来自pygit2 merge documentation

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

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

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

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])

【讨论】:

  • 确实,没有选择,因为它是 only 存在的合并。
猜你喜欢
  • 2015-08-24
  • 2012-02-27
  • 2012-11-11
  • 2014-03-06
  • 1970-01-01
  • 2015-02-19
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多