2013-04-17 6 views
4

Я работаю на не голое хранилище с pygit2Неотслеживаемые на каталоги совершить с 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] 
) 

Это успешно, но когда я выполняю 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/ 

А после git reset --hard все исправлено.

Есть ли способ правильно обновить индекс с помощью pygit?

ответ

6

Вы только пишете дерево из своего индекса в памяти и оставляете индекс на диске неизменным, поэтому после фиксации он находится в том же состоянии, что и прежде, чем вы что-либо сделали.

Если вы хотите, чтобы ваши изменения сохранялись на диске, вам необходимо указать индекс (index.write()).

+0

спасибо, он решил проблему! – linkdd