web-dev-qa-db-fra.com

Comment extraire une branche avec GitPython

J'ai cloné un référentiel avec GitPython, maintenant je voudrais extraire une branche et mettre à jour l'arborescence de travail du référentiel local avec le contenu de cette branche. Idéalement, je serais également en mesure de vérifier si la branche existe avant de le faire. Voici ce que j'ai jusqu'à présent:

import git

repo_clone_url = "[email protected]:mygithubuser/myrepo.git"
local_repo = "mytestproject"
test_branch = "test-branch"
repo = git.Repo.clone_from(repo_clone_url, local_repo)
# Check out branch test_branch somehow
# write to file in working directory
repo.index.add(["test.txt"])
commit = repo.index.commit("Commit test")

Je ne sais pas quoi mettre à la place des commentaires ci-dessus. Le documentation semble donner un exemple de comment détacher le HEAD, mais pas comment extraire une branche nommée.

11
Alex Spurling

Si la branche existe:

repo.git.checkout('branchename')

Si non:

repo.git.checkout('-b', 'branchename')

Fondamentalement, avec GitPython, si vous savez comment le faire en ligne de commande, mais pas dans l'API, utilisez simplement repo.git.action("your command without leading 'git' and 'action'"), exemple: git log --reverse => repo.git.log('--reverse')

14
Arount