Checkout or list remote branches in GitPython

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.


For those who want to just print the remote branches:

# Execute from the repository root directory
repo = git.Repo('.')
remote_refs = repo.remote().refs

for refs in remote_refs:
    print(refs.name)