如何在 GitPython 中使用 git pull?

how to use git pull with GitPython?

我正在尝试使用 python 从 git 中提取文件,但它不起作用。下面是我使用的代码:

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

它要求身份验证,然后终止。

有人可以帮我吗?这段代码有什么问题?

这取决于您的 OS 但您应该在其中使用 credential helper in order to cache the password (or token if you have 2FA activated)。

这是假设您正在尝试从私有存储库中提取。

例如,在 Windows 上,这将是“manager”,您可以使用 git credential fill.

缓存您的凭据

第一步是创建一个 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()