Checkout or list remote branches in GitPython

Mike picture Mike · Mar 18, 2010 · Viewed 24.7k times · Source

I don't see an option to checkout or list remote/local branches in this module: https://gitpython.readthedocs.io/en/stable/

Answer

pkowalczyk picture pkowalczyk · Feb 13, 2017

To list branches you can use:

from git import Repo
r = Repo(your_repo_path)
repo_heads = r.heads # or it's alias: r.branches

r.heads returns git.util.IterableList (inherits after list) of git.Head objects, so you can:

repo_heads_names = [h.name for h in repo_heads]

And to checkout eg. master:

repo_heads['master'].checkout() 
# you can get elements of IterableList through it_list['branch_name'] 
# or it_list.branch_name

Module mentioned in the question is GitPython which moved from gitorious to Github.