本文目录导读:

在开源项目里看“两队历史交锋记录”,这个说法通常有两种可能,需要先确认你指的是哪一种:
- 足球/体育类开源项目:想查两支球队的历史交锋战绩
- 代码协作平台(GitHub/GitLab等):把两个团队/开发者比作“两队”,想看他们的协作或冲突历史
下面两种都讲一下,你对号入座即可。
如果是体育数据类开源项目
这类项目一般本身不直接提供“交锋记录”页面,而是提供数据 API 或数据集,你需要自己查询或调用。
常见开源数据源
| 项目/来源 | 说明 |
|---|---|
| football-data.org | 提供球队、比赛、积分榜等 API,免费版有限制 |
| OpenFootball | GitHub 上的开源足球数据集,含历史比赛结果 |
| StatsBomb Open Data | GitHub 开源,含详细比赛事件数据 |
| FBref / Kaggle 数据集 | 可下载 CSV,自行筛选两队交锋 |
| api-football (RapidAPI) | 有 head-to-head 接口,非完全开源但常用 |
查询思路(以 API 为例)
import requests
# 以 api-football 为例(需申请 key)
url = "https://v3.football.api-sports.io/fixtures/headtohead"
params = {
"h2h": "33-34", # 两队 ID,如曼联-利物浦
"last": 10 # 10 场
}
headers = {"x-apisports-key": "你的KEY"}
resp = requests.get(url, headers=headers, params=params)
print(resp.json())
如果是自建项目
通常数据表设计成:
matches 表:match_id, home_team_id, away_team_id, home_goals, away_goals, match_date
查询两队交锋的 SQL:
SELECT * FROM matches WHERE (home_team_id = A AND away_team_id = B) OR (home_team_id = B AND away_team_id = A) ORDER BY match_date DESC;
然后再统计胜平负、进球数等。
如果是 GitHub/GitLab 上的“两队”
比如想看两个团队、两个开发者、两个分支之间的历史交互:
看两个开发者的协作/冲突历史
# 看某人所有提交 git log --author="张三" # 看两人共同修改过的文件 git log --author="张三" --name-only --pretty=format: | sort -u > a.txt git log --author="李四" --name-only --pretty=format: | sort -u > b.txt comm -12 a.txt b.txt # 交集文件
看两个分支的“交锋”
# 分支差异 git log main..feature --oneline git log feature..main --oneline # 合并历史 git log --merges --oneline # 图形化看分叉与合并 git log --graph --oneline --all
在 GitHub 网页上
- Insights → Contributors:看贡献者历史
- Insights → Code frequency:增删代码趋势
- Pull Requests → 筛选 author / reviewer:看两方评审交互
- Compare 功能:对比两个分支/标签
- Network 图:看分支分叉合并
用工具分析
- git-quick-stats:终端统计
- GitHub Actions + 脚本:自动生成对战报表
- Gource:可视化提交历史动画
你需要先明确
请补充一下:
- 你说的“两队”是足球队还是开发团队/分支?
- 是现成开源项目里找功能,还是自己写代码实现?
- 数据来源是 API、数据库还是 Git 仓库?
告诉我具体场景,我可以给你更精确的查询语句或代码示例。