git show

文章目录

  • [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 show vs git log -p)
    • [5.2 查看多种对象](#5.2 查看多种对象)
    • [5.3 常用别名设置](#5.3 常用别名设置)
  • [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)。


参考文献

Git - git-show Documentation