5

我正在使用 pygit2 开发一个非裸存储库

index = repo.index
index.read()

# write in test/test.txt

index.add('test/test.txt')
treeid = index.write_tree()

repo.create_commit(
    'HEAD',
    author, committer,
    'test commit',
    treeid,
    [repo.head.oid]
)

这是成功的,但是当我执行 a 时git status,我得到了这个:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    test/test.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   test/

在 a 之后git reset --hard,一切都已修复。

有没有办法用 pygit 正确更新索引?

4

1 回答 1

7

您只是从内存索引中写出一棵树,而磁盘索引保持不变,因此在提交之后它处于与您执行任何操作之前相同的状态。

index.write()如果要将更改存储在磁盘上,则需要写出索引 ( )。

于 2013-04-17T10:01:19.413 回答