ich nicht eine Option zur Kasse oder remote/lokale Niederlassungen in diesem Modul ListeKasse/Liste Remote-Niederlassungen in git-Python
http://gitorious.org/git-python/
ich nicht eine Option zur Kasse oder remote/lokale Niederlassungen in diesem Modul ListeKasse/Liste Remote-Niederlassungen in git-Python
http://gitorious.org/git-python/
Nachdem Sie getan haben
from git import Git
g = Git()
(und möglicherweise ein anderer Befehl zum Initialisieren von g
an das Repository, das Ihnen wichtig ist) werden alle Attributanforderungen auf g
mehr oder weniger in einen Aufruf von git attr *args
umgewandelt.
Deshalb:
g.checkout("mybranch")
sollte das tun, was Sie wollen.
g.branch()
wird die Zweige auflisten. Beachten Sie jedoch, dass es sich um Befehle auf sehr niedriger Ebene handelt, die den genauen Code zurückgeben, den die ausführbaren Git-Dateien zurückgeben. Erwarten Sie daher keine nette Liste. Ich werde nur eine Reihe von mehreren Zeilen und mit einer Zeile mit einem Stern als das erste Zeichen sein.
Möglicherweise gibt es einen besseren Weg, dies in der Bibliothek zu tun. In repo.py
zum Beispiel ist ein spezieller active_branch
Befehl. Du musst ein wenig durch die Quelle gehen und selbst schauen.
Zweige Um eine zur Zeit können Sie:
from git import Repo
r = Repo(your_repo_path)
repo_heads = r.heads # or it's alias: r.branches
r.heads
kehrt git.util.IterableList
(erbt nach list
) von git.Head
Objekte, so können Sie:
repo_heads_names = [h.name for h in repo_heads]
Und zB zur Kasse. master
:
repo_heads['master'].checkout()
# you can get elements of IterableList through it_list['branch_name']
# or it_list.branch_name
Modul in der Frage erwähnt ist GitPython
die moved von gitorious
zu Github.
Ich hatte ein ähnliches Problem. In meinem Fall wollte ich nur die Remote-Zweige auflisten, die lokal verfolgt werden. Dieser arbeitete für mich:
import git
repo = git.Repo(repo_path)
branches = []
for r in repo.branches:
branches.append(r)
# check if a tracking branch exists
tb = t.tracking_branch()
if tb:
branches.append(tb)
Falls alle entfernten Niederlassungen benötigt werden, würde ich es vorziehen git läuft direkt:
def get_all_branches(path):
cmd = ['git', '-C', path, 'branch', '-a']
out = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
return out
Wenn Sie bereits eine Repo-Instanz haben, können Sie Git-Befehle direkt aufrufen als: '' 'repo.git.branch ('- a')' '' – dusktreader
einfach es offensichtlich zu machen - eine Liste der Remote-Filialen aus dem Strom zu erhalten Repo-Verzeichnis:
import os, git
# Create repo for current directory
repo = git.Repo(os.getcwd())
# Run "git branch -r" and collect results into array
remote_branches = []
for ref in repo.git.branch('-r').split('\n'):
print ref
remote_branches.append(ref)
wenn ich laufe r = Git.clone ("git ...") r.checkout ("entwickeln") funktioniert nicht .. Attribute: 'str' Objekt hat kein Attribut 'Kasse' – Mike
ok sieht aus, als müsste ich ag = Git ("dir ") dann kann ich es auschecken – Mike
Könnte sein. Ich klonte nur mit 'g' und dann funktionierte es. – Debilski