PyGit2 - TreeBuilder.insert('name',blobid,GIT_FILEMODE_BLOB)vs index.add('path / to / file')?

时间:2014-01-20 19:28:21

标签: python git repository pygit2

我对如何开始使用PyGit2感到有些困惑。

将文件(复数)添加到新创建的仓库时,应该我将它们添加到 index.add('path/to/file')
或者我会更好地创建一个TreeBuilder并使用 tb.insert( 'name',oid, GIT_FILEMODE_BLOB )添加新内容?

如果是第二种情况,我对如何创建提交到新创建的repo所需的树对象感到难过?

任何?

2 个答案:

答案 0 :(得分:0)

假设您的pygit2.Repository被称为repo,请尝试:

t_builder = repo.TreeBuilder()

来自Python控制台的help(pygit2.TreeBuilder)更方便的信息。

答案 1 :(得分:0)

你可以做任何一种方式 我发现index.add()方法很简单。

您可以使用Repository.status()作为字典来获取要添加或删除到索引的所有文件。字典包含文件名作为键,文件状态作为值。根据状态值,需要使用index.remove(filename)从索引中删除已删除的文件 使用index.write_tree()将此索引写入内存树,这将返回要在Repository.commit()中使用的树ID。 但是,要将更改保存到磁盘,也请使用index.write()