web-dev-qa-db-ja.com

GitPythonでブランチをチェックアウトする方法

GitPythonでリポジトリのクローンを作成しました。次に、ブランチをチェックアウトし、ローカルリポジトリの作業ツリーをそのブランチのコンテンツで更新したいと思います。理想的には、これを行う前にブランチが存在するかどうかを確認することもできます。これは私がこれまでに持っているものです:

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")

上記のコメントの場所に何を入れるべきか分かりません。 documentation は、HEADをデタッチする方法の例を示しているようですが、名前付きブランチをチェックアウトする方法は示していません。

11
Alex Spurling

ブランチが存在する場合:

_repo.git.checkout('branchename')
_

そうでない場合:

_repo.git.checkout('-b', 'branchename')
_

基本的に、GitPythonで、コマンドライン内でそれを行う方法を知っているがAPI内ではない場合は、repo.git.action("your command without leading 'git' and 'action'")を使用します。例:_git log --reverse_ => repo.git.log('--reverse')

14
Arount