how to use git pull with GitPython?

4.7k views Asked by At

I am trying to pull filesfrom git using python but it's not working. Below is the code I was using:

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

it asks for authentication and after that terminates.

Could someone please help me here? what's wrong with this code?

2

There are 2 answers

1
Hosseinreza On BEST ANSWER

The first step is to create a git.Repo object to represent your repository.

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

In the above example, the directory self.rorepo.working_tree_dir equals /Users/mtrier/Development/git-python and is my working repository which contains the .git directory. You can also initialize GitPython with a bare repository.

This is what you asked for :


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

It depends on your OS but you should use a credential helper in order to cache the password (or token if you have 2FA activated) in it.

This is assuming your are trying to pull from a private repository.

On Windows, for example, that would be "manager", and you can cache your credentials with git credential fill.