6

我正在尝试使用 pygit2 库。

似乎我被困在了第一步。它的文档没有解释如何创建一个 blob 并将其添加到树中。它主要是关于如何使用现有的 git 存储库,但我想创建一个并将 blob、提交等添加到我的存储库。是否可以直接从文件创建 blob,还是应该读取文件内容并设置 blob.data?

from pygit2 import Repository
from pygit2 import init_repository

bare = False
repo = init_repository('test', bare)

如何创建 Blob 或树并将其添加到存储库?

4

1 回答 1

7

python 绑定不允许您直接从文件创建 blob,因此您必须将文件读入内存并用于Repository.write(pygit2.GIT_OBJ_BLOB, filecontents)创建 blob。

然后,您可以使用 来创建树TreeBuilder,例如

import pygit2 as g

repo = g.Repository('.')
# grab the file from wherever and store in 'contents'
oid = repo.write(g.GIT_OBJ_BLOB, contents)
bld = repo.TreeBuilder()
# attributes is whether it's a file or dir, 100644, 100755 or 040000
bld.insert('file.txt', oid, attributes)
treeoid = bld.write()
于 2012-05-02T14:14:33.623 回答