文章目录
- [1. 简介](#1. 简介)
- [2. 格式](#2. 格式)
- [3. 选项](#3. 选项)
- [4. 示例](#4. 示例)
-
- [4.1 基础用法](#4.1 基础用法)
- [4.2 只查看变更统计](#4.2 只查看变更统计)
- [4.3 只查看被修改的文件名](#4.3 只查看被修改的文件名)
- [4.4 查看文件的某个版本](#4.4 查看文件的某个版本)
- [4.5 查看 HEAD 的父提交](#4.5 查看 HEAD 的父提交)
- [4.6 查看某个 tag 指向的版本信息](#4.6 查看某个 tag 指向的版本信息)
- [4.7 显示某个 tag 指向的版本的目录树](#4.7 显示某个 tag 指向的版本的目录树)
- [5. 注意](#5. 注意)
-
- [5.1 `git show` vs `git log -p`](#5.1
git showvsgit log -p) - [5.2 查看多种对象](#5.2 查看多种对象)
- [5.3 常用别名设置](#5.3 常用别名设置)
- [5.1 `git show` vs `git log -p`](#5.1
- [6. 小结](#6. 小结)
- 参考文献
1. 简介
git show 用于查看一个对象(提交、标签、树或文件)的详细信息。最常用于查看某次提交的变更内容。
典型场景:
- 查看某次提交改了什么
- 查看某个文件的特定版本
- 查看标签的详细信息
2. 格式
bash
git show [<options>] [<object>...]
不传 object 缺省值为 HEAD(即当前分支的最新提交)。
3. 选项
bash
--abbrev-commit
精简 commit id,只展示 40 个十六进制数字构成的 commit id 的首部
--name-only
只显示被修改的文件名
--name-status
显示被修改的文件名及状态(M/D/A)
--no-patch
不显示补丁内容,只显示提交信息
--oneline
等价于 --pretty=oneline --abbrev-commit
-p, --patch
显示具体变更内容(默认行为)
--pretty=<format>, --format=<format>
自定义提交信息的输出格式。
<format> 可取值 oneline, short, medium, full, fuller, email, raw, format:<string> 和 tformat:<string>,
其中<string>为格式控制字符串。缺省值为 medium。常用的是 oneline
-q, --quiet
静默模式,不输出任何内容(仅用于检查对象是否存在)
--raw
显示原始格式的变更信息
--stat
只显示文件变更统计(不显示具体内容)
4. 示例
4.1 基础用法
bash
# 查看最新提交的详细信息
git show
# 查看指定提交的详细信息
git show a1b2c3d
# 查看指定标签的信息
git show v1.0.0
4.2 只查看变更统计
bash
# 只显示修改了哪些文件,不显示具体内容
git show --stat a1b2c3d
4.3 只查看被修改的文件名
bash
# 只显示修改了哪些文件
git show --name-only a1b2c3d
# 显示文件名及状态(M/D/A)
git show --name-status a1b2c3d
4.4 查看文件的某个版本
bash
# 查看某次提交中的某个文件
git show a1b2c3d:main.go
# 查看某个文件在特定提交中的内容
git show a1b2c3d:./main.go
4.5 查看 HEAD 的父提交
bash
# 查看 HEAD 的父提交
git show HEAD^
# 查看 HEAD 的祖父提交
git show HEAD~2
4.6 查看某个 tag 指向的版本信息
bash
git show v1.0.0
4.7 显示某个 tag 指向的版本的目录树
bash
git show v1.0.0^{tree}
.gitignore
.orange-ci.yml
PRJ_ROOT
README.md
bin/
pkg/
src/
5. 注意
5.1 git show vs git log -p
| 命令 | 作用 | 适用场景 |
|---|---|---|
git show <commit> |
查看单个提交的详细信息 | 快速查看某次提交改了什么 |
git log -p <commit> |
查看多个提交的详细信息 | 浏览一段历史中的变更 |
5.2 查看多种对象
git show 可以查看多种 Git 对象类型:
bash
# 查看提交
git show a1b2c3d
# 查看标签
git show v1.0.0
# 查看树对象
git show 4c5d6e7f:
# 查看 blob(文件)
git show a1b2c3d:main.go
5.3 常用别名设置
bash
git config --global alias.sh "show --stat"
git config --global alias.showfiles "show --name-only"
# 使用别名
git sh a1b2c3d
git showfiles a1b2c3d
6. 小结
| 需求 | 命令 | 说明 |
|---|---|---|
| 查看最新提交 | git show |
最常用 |
| 查看指定提交 | git show <commit> |
查看某次提交的详细信息 |
| 只查看变更统计 | git show --stat <commit> |
只看改了多少文件 |
| 只查看修改的文件 | git show --name-only <commit> |
只看文件名 |
| 查看文件的历史版本 | git show <commit>:<file> |
查看某个文件在特定提交中的内容 |
| 查看标签 | git show <tag> |
查看标签的详细信息和关联提交 |
一句话总结 :git show 是查看单个提交 详情的专用命令。想看多个提交用 git log -p。默认会显示提交信息和具体代码变更(-p)。