如何通过pygit2获取当前检出的Git分支名称?

时间:2014-10-01 04:16:59

标签: python git pygit2

4 个答案:

答案 0 :(得分:13)

获得传统的“速记”名称:

from pygit2 import Repository

Repository('.').head.shorthand  # 'master'

答案 1 :(得分:7)

PyGit Documentation

其中任何一个都应该起作用

head = repo.lookup_reference('HEAD').resolve()
head = repo.head

branch_name = head.name

答案 2 :(得分:1)

如果您不想或不能使用pygit2

可能需要更改路径-假设您位于.git的父目录中

from pathlib import Path

def get_active_branch_name():

    head_dir = Path(".") / ".git" / "HEAD"
    with head_dir.open("r") as f: content = f.read().splitlines()

    for line in content:
        if line[0:4] == "ref:":
            return line.partition("refs/heads/")[2]

答案 3 :(得分:1)

您可以使用GitPython

from git import Repo
local_repo = Repo(path=settings.BASE_DIR)
local_branch = local_repo.active_branch.name