如何在 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()
我正在尝试使用 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()