no veo la opción de pago y envío o anuncie ramas remoto/local en este móduloPedido/sucursales remotas Lista de git-pitón
http://gitorious.org/git-python/
no veo la opción de pago y envío o anuncie ramas remoto/local en este móduloPedido/sucursales remotas Lista de git-pitón
http://gitorious.org/git-python/
Después de haber hecho
from git import Git
g = Git()
(y posiblemente algún otro comando para iniciar g
en el repositorio que le interese) todas las solicitudes de atributos en g
se transforman más o menos en una llamada de git attr *args
.
Por lo tanto:
g.checkout("mybranch")
debe hacer lo que quiera.
g.branch()
enumerará las ramas. Sin embargo, tenga en cuenta que estos son comandos de muy bajo nivel y devolverán el código exacto que devolverán los archivos ejecutables de git. Por lo tanto, no esperes una buena lista. Seré una cadena de varias líneas y una línea tendrá un asterisco como primer personaje.
Puede haber una forma mejor de hacerlo en la biblioteca. En repo.py
, por ejemplo, es un comando especial active_branch
. Tendrás que ir un poco a la fuente y buscar por ti mismo.
Para una lista ramas Actualmente se puede utilizar:
from git import Repo
r = Repo(your_repo_path)
repo_heads = r.heads # or it's alias: r.branches
r.heads
vuelve git.util.IterableList
(hereda después list
) git.Head
de objetos, para que pueda:
repo_heads_names = [h.name for h in repo_heads]
Y al Pago por ejemplo. master
:
repo_heads['master'].checkout()
# you can get elements of IterableList through it_list['branch_name']
# or it_list.branch_name
módulo mencionado en la pregunta es la que GitPython
moved de gitorious
a Github.
Tuve un problema similar. En mi caso, solo quería enumerar las sucursales remotas que se rastrean localmente. Esto funcionó para mí:
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)
En caso de que se necesitan todas las ramas remotas, preferiría correr git directamente:
def get_all_branches(path):
cmd = ['git', '-C', path, 'branch', '-a']
out = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
return out
Si ya tiene una instancia de Repo, puede llamar a los comandos de git directamente como: '' 'repo.git.branch ('- a')' '' – dusktreader
Sólo para que quede claro - para obtener una lista de sucursales de los actuales repo:
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)
cuando corro r = Git.clone ("git ...") r.checkout ("desarrollo") no funciona .. AttributeError: objeto 'str' no tiene atributo 'check out' – Mike
bien parece que necesito ejecutar ag = Git ("dir ") entonces puedo pagar – Mike
podría ser. Acabo de clonar con 'g' y luego funcionó. – Debilski