2017-01-19 6 views
-2

У меня есть локальный репозиторий git. У меня есть файл python, который называется «fibo.py». Я отредактировал этот файл в редакторе и сохранил изменения. Затем я написал следующий код для фиксации этого файла для репо.Не удалось зафиксировать файл git с помощью библиотеки gitpython

from git import Repo 
import os 

repo_dir = 'D:\\Git Repo\\newrepo1' 
file_list = [] 
repo1 = Repo(repo_dir) 
print(os.getcwd()) 
os.chdir('%s' % repo_dir) 
dirs = os.listdir() 
print(os.getcwd()) 
# This would print all the files and directories 
for file in dirs: 
    if file != '.git': 
     print(file) 
     new_file_path = osp.join(repo1.working_tree_dir, file) 
     open(file,'r').close 
     filelist.append(new_file_path) 

commit_message = 'adding new files' 
repo1.index.add(file_list) 
repo1.index.commit(commit_message) 

Выполнение поручения. Я проверил журнал, но когда я проверяю для совершения записей

print(repo1.untracked_files) 
for commit in list(repo1.iter_commits()): 
    print('COMMITS--->',commit.stats.files) 

Это дает мне этого выход

['fibo.py'] 
COMMITS---> {} 
COMMITS---> {} 
COMMITS---> {} 
COMMITS---> {} 

Может кто-нибудь помочь мне предложить изменения

+0

Пожалуйста, исправьте код и удалить ненужную (печать отладочный вывод, и т.д ...) , Ваш код даже не будет запускаться по нескольким причинам ('filelist' не определен, нет модуля' osp', ...) –

+0

Удалив весь беспорядок, ваш пример работает для меня, и я получаю '' COMMITS ---> ', {u'fibo.py ': {' deletions ': 0,' lines ': 0,' insertions ': 0}} ' –

+0

Что выводит' print (file_list) '? –

ответ

-1

За исключением ошибки и список файлов file_list орфографических ошибок. Я решил, просто редактировать цикл

for file in dirs: 
    if file != '.git': 
     print(file) 
     new_file_path = osp.join(repo1.working_tree_dir, file) 
     print(new_file_path) 
     print(repo1.index) 
     #open(file,'w').close 
     repo1.index.add([new_file_path]) 

выкладываем только repo1.commit после того, как цикл, и он работает

Смежные вопросы