2012-10-31 9 views
8

Ich versuche den Weg zu finden, ein Git-Repository mit gitPython zu ziehen. Bisher habe ich das aus der offiziellen Dokumentation here übernommen.Wie kann ich ein Remote-Repository mit GitPython abrufen?

test_remote = repo.create_remote('test', '[email protected]:repo.git') 
repo.delete_remote(test_remote) # create and delete remotes 
origin = repo.remotes.origin # get default remote by name 
origin.refs      # local remote references 
o = origin.rename('new_origin') # rename remotes 
o.fetch()      # fetch, pull and push from and to the remote 
o.pull() 
o.push() 

Tatsache ist, dass ich die repo.remotes.origin zugreifen wollen es Ursprung ein Pull withouth Umbenennung zu tun (origin.rename) Wie kann ich das erreichen? Danke.

Antwort

15

ich es geschaffen, dies durch die Repo-Namen direkt bekommen:

repo = git.Repo('repo_name') 
o = repo.remotes.origin 
o.pull() 
+0

Der 'repo_name' hier ist nicht wirklich der Name des Repos, sondern der Dateisystempfad zur Basis des Git-Repository. –

0

Da die akzeptierte Antwort sagt, es ist möglich repo.remotes.origin.pull() zu verwenden, aber der Nachteil ist, dass es die tatsächlichen Fehlermeldungen in seinen eigenen allgemeinen Fehler versteckt. Zum Beispiel, wenn die DNS-Auflösung nicht funktioniert, dann zeigt repo.remotes.origin.pull() die folgende Fehlermeldung:

git.exc.GitCommandError: 'Error when fetching: fatal: Could not read from remote repository. 
' returned with exit code 2 

Auf der anderen Seite using git commands with GitPython wie repo.git.pull() zeigt die realen Fehler:

git.exc.GitCommandError: 'git pull' returned with exit code 1 
stderr: 'ssh: Could not resolve hostname github.com: Name or service not known 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists.' 
0

Hoffnung, die Sie suchen dafür:

import git 
g = git.Git('git-repo') 
g.pull('origin','branch-name') 

Zieht die letzten Commits für das angegebene Repository und den Zweig.

Verwandte Themen