1

这个问题涉及如何与 执行合并pygit2,但据我所知,这将导致新的提交。有没有办法执行变基,这不会导致新的提交,并且只会快进分支引用以对应于给定远程的最新版本?

4

1 回答 1

2

您可以使用Reference.set_target()快进。

示例(快速转发masterorigin/master,假设脚本从master处于干净状态的签出分支开始):

repo.remotes['origin'].fetch()
origin_master = repo.lookup_branch('origin/master', pygit2.GIT_BRANCH_REMOTE)
master = repo.lookup_branch('master')
master.set_target(origin_master.target)

# Fast-forwarding with set_target() leaves the index and the working tree
# in their old state. That's why we need to checkout() and reset()
repo.checkout('refs/heads/master')
repo.reset(master.target, pygit2.GIT_RESET_HARD)
于 2016-07-25T21:21:18.903 回答