繁体   English   中英

使用pygit2(libgit2)将Blob或树添加到创建的存储库中?

[英]add blobs or trees to a created repository using pygit2 (libgit2)?

我正在尝试使用pygit2库。

好像我第一步陷入了困境。 它的文档没有解释如何创建blob并将其添加到树中。 它主要围绕如何使用现有的git存储库,但我想创建一个并添加blob,commit,...到我的repo。 是否可以直接从文件创建blob,还是应该读取文件内容并设置blob.data?

from pygit2 import Repository
from pygit2 import init_repository

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

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

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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM