如何使用GitPython检出分支

时间:2017-12-18 16:00:05

标签: python git gitpython

我已经使用GitPython克隆了一个存储库,现在我想签出一个分支并使用该分支的内容更新本地存储库的工作树。理想情况下,我还可以在执行此操作之前检查分支是否存在。这就是我到目前为止所做的:

import git

repo_clone_url = "git@github.com: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的示例,而不是如何签出命名分支。

1 个答案:

答案 0 :(得分:12)

如果分支存在:

Name rs.Fields("From").Value As rs.Fields("To").Value

如果不是:

repo.git.checkout('branchename')

基本上,使用GitPython,如果您知道如何在命令行中执行此操作,但不在API中,请使用repo.git.checkout('-b', 'branchename') ,例如:repo.git.action("your command without leading 'git' and 'action'") => git log --reverse