git show 是什么
git show 用来查看单个对象的内容:给提交哈希就展示提交信息与补丁,给标签会展示标签对象和它指向的提交,给树对象会列出目录内容。不带参数时默认展示 HEAD 这一次提交,是查看单条提交细节最直接的命令。
输出由对象类型决定
同一个命令在不同对象上的输出差别很大:对提交默认附带补丁,加 -s 只看信息,加 --stat 只看改动规模;对标签会先显示标签元数据;对树对象则列出条目。理解「对象类型决定输出」之后,就不会对同一命令的不同表现感到困惑。
基本信息
| 适用平台 | Linux / macOS / Windows(Git 2.x) |
|---|---|
| 语法 | git show [选项] <对象>,省略时默认 HEAD |
| 对象类型 | 提交 / 标签 / 树 / blob |
| 常用参数 | --stat 摘要;-s 只看信息;--name-only 只列文件名 |
| 格式定制 | --format 的占位符与 git log 一致 |
| 典型用途 | 查看单条提交、核对发布标签 |
典型使用场景
- 展开提交:从 log 的简短输出定位后,看单条提交的完整改动
- 核对标签:确认某个发布标签指向哪条提交、内容是什么
- 取历史文件:git show <提交>:<路径> 直接输出该版本内容
- 检查合并:用 --first-parent -m 分别查看相对各父提交的差异
- 脚本取值:用 -s --format 提取单条提交的字段
常用示例
常用示例
git show # 查看 HEAD 这一次提交
git show --stat HEAD~1 # 只看上一条提交的改动摘要
git show -s --format='%H %an %ad %s' HEAD # 只取提交信息字段
git show v2.1.0 # 查看标签及其指向的提交
git show HEAD~2:src/app.py # 输出某个历史版本的文件内容
git show --first-parent -m <合并提交> # 分别看相对各父提交的差异常见输出与参数
| 命令 | 输出内容 | 适用场景 |
|---|---|---|
| git show | 提交信息加完整补丁 | 快速看清一条提交 |
| git show --stat | 提交信息加文件摘要 | 只关心改了哪些文件 |
| git show -s | 只有提交信息 | 需要提交元数据 |
| git show <标签> | 标签元数据与指向的提交 | 核对发布内容 |
| git show <提交>:<路径> | 该版本的文件内容 | 对比历史文件 |
git show <标签> 会同时展示标签对象与它指向的提交。核对发布内容时,这一步能确认标签到底打在哪条提交上。
合并提交默认显示 combined diff,只列出与所有父提交都不同的文件,容易让人误读成改动很少,需要结合两侧分别查看。