这个问题应该与:
有关但我想知道如何通过pygit2来做到这一点?
答案 0 :(得分:13)
获得传统的“速记”名称:
from pygit2 import Repository
Repository('.').head.shorthand # 'master'
答案 1 :(得分:7)
其中任何一个都应该起作用
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