You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyGithub如何获取指定仓库特定分支的最新提交记录

PyGithub获取指定分支最新提交的正确实现

错误原因

你原有代码调用repo.get_commits()时传入的path参数作用为筛选提交记录中修改了指定路径文件的提交,并非用于指定查询分支,传入"tree/"+分支名没有符合筛选条件的提交,因此返回空结果。

正确代码实现

需求说明

实现效果等价于调用Github REST API:https://api.github.com/repos/{所有者}/{仓库名}/commits/{分支名}?per_page=1,即获取指定分支最新的1条提交记录。

遍历仓库所有分支获取每个分支的最新提交

from github import Github

# 初始化实例,若访问私有仓库需传入个人访问令牌
g = Github("你的Github个人访问令牌")
# 替换为实际的仓库所有者/仓库名
repo = g.get_repo("owner/repo_name")

# 获取仓库所有分支
branches = repo.get_branches()
for branch in branches:
    print(f"当前分支:{branch.name}")
    # sha参数指定查询分支,per_page=1仅返回最新1条提交
    commits = repo.get_commits(sha=branch.name, per_page=1)
    for commit in commits:
        print(f"最新提交SHA:{commit.sha}")
        print(f"提交信息:{commit.commit.message}")
        print(f"提交时间:{commit.commit.author.date}")
        print("------------------------")

直接获取单个指定分支的最新提交

# 替换为你要查询的目标分支名
target_branch = "main"
# 直接取返回结果的第一条即为最新提交
latest_commit = repo.get_commits(sha=target_branch, per_page=1)[0]

参数说明

  • sha:可传入分支名、标签名、commit SHA值,此处传入分支名即可限定查询范围为对应分支的提交记录
  • per_page:和REST接口参数作用一致,设置单次返回的提交数量,设置为1即可仅拉取最新1条提交,减少不必要的资源消耗

内容的提问来源于stack exchange,提问作者user2722634

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:39:03