Я пытаюсь обновить скрипт Python, который проверяет состояние нескольких локальных репозиториев по сравнению с удаленными с помощью subprocess на использование GitPython. Что такое эквивалентная команда в GitPython для git remote show origin
или как лучше проверить, является ли локальное хранилище быстро перемотанным или устаревшим< /em> (и т. д.)?
$ git remote show origin
* remote origin
Fetch URL: <url>
Push URL: <url>
HEAD branch: master
Remote branches:
XYZ tracked
master tracked
Local branches configured for 'git pull':
XYZ merges with remote XYZ
master merges with remote master
Local refs configured for 'git push':
XYZ pushes to XYZ (up to date)
master pushes to master (up to date)
Последние две строчки меня больше всего интересуют. Похоже, что это возможно с помощью GitPython путем перебора git.Repo.heads
и git.Repo.remotes.origin.refs
и сравнения хэшей .master.commit
(и т. д.). Кажется, что это намного больше работы, чем приведенная выше единственная собственная команда git, и потребуется еще больше работы, чтобы определить, какие стороны устарели. Я ожидал чего-то вроде git.Repo.remotes.origin.status()
. Как правильно определить это в GitPython?