2

使用 Rugged,执行快进“合并”的规范方法是什么?

这里我发现了一个可能的线索:

# Move branch forward
# Since there's no fast-forward merge in this lib yet, do it by hand.
br = repo.branch "master"
br.move 'master-old', true if br != nil
repo.create_branch 'master', commit_sha
#br.delete! # No real harm in this hanging around

但我很好奇这里是否有改进的余地。

4

1 回答 1

2

不需要称为“快进合并”libgit2 的操作,因为所谓的 ff-merge 正在将当前分支更新为另一个分支上的任何提交,该分支确实存在。

repo.checkout_tree(other_branch.target)
repo.references.update(repo.head.resolve, other_branch.target_id)

会将 workdir 更新为对方拥有的内容,然后将当前分支设置为指向分支尖端的任何提交以“合并”,这就是 ff 所做的。

于 2014-11-22T12:22:13.923 回答