как использовать git pull с GitPython?

#python #git #git-pull #gitpython #pygit2

#python #git #git-pull #gitpython #pygit2

Вопрос:

Я пытаюсь извлечь файлы из git с помощью python, но это не работает. Ниже приведен код, который я использовал:

 import git 
git.cmd.Git().pull('https://github.com/User/repo','master') 
  

он запрашивает аутентификацию и после этого завершается.

Может кто-нибудь, пожалуйста, помочь мне здесь? что не так с этим кодом?

Ответ №1:

Первым шагом является создание git.Repo объекта для представления вашего репозитория.

 from git import Repo

# rorepo is a Repo instance pointing to the git-python repository.
# For all you know, the first argument to Repo is a path to the repository
# you want to work with
repo = Repo(self.rorepo.working_tree_dir)
assert not repo.bare

  

В приведенном выше примере каталог self.rorepo.working_tree_dir равен /Users/mtrier/Development/git-python и является моим рабочим репозиторием, который содержит .git каталог. Вы также можете инициализировать GitPython с помощью простого репозитория.

Это то, о чем вы просили :

 
 repo = git.Repo('repo_name')
 o = repo.remotes.origin
 o.pull()
  

Комментарии:

1. Я получил ошибку атрибута: у IterableList нет источника атрибута

Ответ №2:

Это зависит от вашей ОС, но вы должны использовать помощник по учетным данным, чтобы кэшировать в нем пароль (или токен, если у вас активирован 2FA).

Это предполагает, что вы пытаетесь извлечь данные из частного репозитория.

В Windows, например, это будет « manager «, и вы можете кэшировать свои учетные данные с git credential fill помощью .

Комментарии:

1. Да, но после предоставления учетных данных он должен git pull, но я не вижу никаких изменений в моей папке

2. @ZZ3111 Затем протестируйте его с помощью git напрямую, чтобы увидеть, возникает ли такая же проблема.