Как вносить изменения с помощью gitpython

Кто-нибудь знает, что эквивалентно git commit -a в gitpython?

Я пробовал repo.index.commit, но не вижу, как добавить параметр -a. repo.index.add добавляет только новые файлы, а не существующие файлы, которые были изменены. Похоже, он не поддерживает функцию update, как в git add -u.

Я мог бы сделать что-то вроде repo.git.commit('-a') или даже

repo.git.add('-u')
repo.index.commit(comment)

Но я думаю, что высокоуровневый интерфейс должен уметь это делать. Я что-то упускаю?

Заранее спасибо,

Эверт


person EvertW    schedule 16.09.2015    source источник
comment
у меня та же проблема, и ниже ответ, похоже, не помогает.   -  person jerrylogansquare    schedule 21.02.2019


Ответы (1)


Вы ничего не упускаете. GitPython больше похож на водопровод, а не на фарфор, которым являются git add -u и git commit.

Поэтому целесообразно и рекомендуется использовать предоставленную оболочку команды git для быстрого выполнения работы, как уже продемонстрировано в вашем примере (например, repo.git.add(update=True)).

Несмотря на то, что можно реализовать что-либо исключительно на GitPython, это не будет работать так же хорошо и не будет так проверено, как уже есть соответствующая нативная реализация git.

GitPython начинает становиться мощным, если вы хотите быстро и удобно получить доступ к данным репозитория git через относительно удобный и pythonic API. Примеры включают доступ к информации о ветвях и тегах или запрос всех деталей коммитов.

person Byron    schedule 17.09.2015
comment
Извините за поздний ответ, я только что заметил, что забыл поблагодарить вас, @Byron. Я ценю усилия по поддержке такой библиотеки, как gitpython, и рад лучше понять ее философию. Спасибо еще раз! - person EvertW; 23.08.2019