/ / `git ls-remote` no GitPython - python, git, gitpython

`git ls-remote` no GitPython - python, git, gitpython

No meu programa python, quero verificar se existe uma referência no meu controle remoto. Eu posso verificar o controle remoto com git ls-remote, mas eu gostaria de evitar analisar a saída sozinho.

eu encontrei git.remote.Remote dentro GitPython, mas isso se refere apenas a um controle remoto de um repositório local.

Faz GitPython tenho um comando equivalente que me permite olhar para refs remotas sem clonar o repositório?

Respostas:

8 para resposta № 1

GitPython não suporta ls-remote, mas você pode usar git.cmd para executar qualquer comando git e depois analisar manualmente a saída:

import git
def lsremote(url):
remote_refs = {}
g = git.cmd.Git()
for ref in g.ls_remote(url).split("n"):
hash_ref_list = ref.split("t")
remote_refs[hash_ref_list[1]] = hash_ref_list[0]
return remote_refs

Exemplo:

In [3]: refs = lsremote("https://github.com/gitpython-developers/GitPython.git")
In [4]: refs["HEAD"]
Out[4]: u"9f4af7c6db25c5bbec7fdc8dfc0ea6803350d94c"