使用 dulwich 库获取当前 Git 分支名称

Getting current Git branch name using dulwich library

我正在尝试使用 dulwich 库获取 Git 存储库的当前分支的名称。我花了很多时间查看 dulwich 的文档,但找不到如何执行此操作。

活动分支是 "HEAD" 当前指向的任何分支。您可以使用类似这样的方式在 Dulwich 获取该 ref:

 >>> from dulwich.repo import Repo
 >>> x = Repo('.')
 >>> ref_chain, commit_sha = x.refs.follow(b'HEAD')
 >>> ref_chain[1]
 b'refs/heads/master'

master 中现在还有一个 dulwich.porcelain.active_branch 函数可以为您完成此操作。

这是我的最终结果,删除了初始 refs/heads/ 前缀:

>>> from dulwich.repo import Repo
>>> import re
>>> repo = Repo('.')
>>> (_, ref), _ = repo.refs.follow(b'HEAD')
>>> match = re.search(r'/([^/]+)$', ref.decode('utf-8')
>>> match[1]
'master'