小编ska*_*dge的帖子

如何使用 pygit2 变基?

我被困在尝试实现git rebasewith pygit2

假设这个回购的历史,如何变基topicmaster使用pygit2?(即,相当于git rebase master topic):

      A---B---C topic
     /
D---E---F---G master
Run Code Online (Sandbox Code Playgroud)

根据pygit2 文档merge_trees可以用于此目的。到目前为止,我得到了:

import pygit2 as git

repo = git.Repository(".")

master = repo.lookup_branch("master")
topic = repo.lookup_branch("topic")

base = repo.merge_base(master.target, topic.target)

master_tree = repo.get(master.target).tree
topic_tree = repo.get(topic.target).tree
base_tree = repo.get(base).tree

index = repo.merge_trees(base_tree,topic,master)
tree_id = index.write_tree(repo)

sig = git.Signature('FooBar', 'foo@bar.org')

# this is not going to work -> several commits need to be re-created
repo.create_commit(topic.name,sig,sig,"msg?",tree_id,[master.target]) …
Run Code Online (Sandbox Code Playgroud)

python git pygit2

5
推荐指数
0
解决办法
280
查看次数

标签 统计

git ×1

pygit2 ×1

python ×1