问题描述
我正在尝试使用python从git中提取文件,但是它不起作用。以下是我使用的代码:
import git
git.cmd.Git().pull('https://github.com/User/repo','master')
它要求进行身份验证,然后终止。
解决方法
这取决于您的操作系统,但是您应该使用credential helper来缓存密码(如果您有token,则可以使用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()