如何在GitPython中使用git pull?

问题描述

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