Git查看历史提交记录及参数详解

Git提供了多种强大的命令来查看项目的历史提交记录,掌握这些命令及其参数可以帮助开发者高效地追踪代码变更、分析项目演进过程。以下是Git查看历史提交的常用命令及其参数详解。

图片[1]_Git查看历史提交记录及参数详解_知途无界

一、基础查看命令

1. git log – 查看提交历史

基本用法

git log

显示当前分支的提交历史,按时间倒序排列,包含提交哈希、作者、日期和提交信息。

常用参数

参数说明
-p--patch显示每次提交的差异(具体修改内容)
--stat显示简略统计信息(修改了哪些文件,增减行数)
--graph以ASCII图形显示分支合并历史
--oneline每个提交显示为一行(简略信息)
-n <num>限制显示最近的n条记录,如-3显示最近3条
--since="YYYY-MM-DD"显示指定日期之后的提交
--until="YYYY-MM-DD"显示指定日期之前的提交
--author="name"按作者筛选提交
--grep="pattern"按提交信息内容筛选
-- path/to/file查看特定文件的修改历史

示例组合

git log --oneline --graph --all -5

显示所有分支最近5条提交的简洁图形化历史。

2. git show – 查看特定提交的详细信息

基本用法

git show <commit-hash>

显示指定提交的详细信息,包括提交元数据和文件变更。

常用参数

参数说明
--name-only只显示修改的文件名,不显示具体差异
--pretty=format:"..."自定义输出格式

示例

git show abc123 --stat

查看提交abc123的修改统计信息。

二、高级查看与搜索

1. 图形化分支查看

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

这个复杂的格式化命令会显示:

  • 彩色的提交哈希(%h)
  • 分支和标签信息(%d)
  • 提交信息(%s)
  • 相对日期(%cr)
  • 作者姓名(%an)

2. 按内容搜索

git log -S"function_name" -p

搜索添加或删除了特定字符串(如函数名)的提交,并显示差异。

3. 查看文件变更历史

git log --follow -p -- path/to/file

跟踪文件的完整历史,包括重命名。

三、差异比较

1. 比较两次提交

git diff commit1..commit2

比较两个提交之间的差异。

2. 比较分支

git diff branch1..branch2

比较两个分支的最新提交差异。

3. 查看工作区与暂存区差异

git diff

查看工作目录中尚未暂存的变更。

4. 查看暂存区与最新提交的差异

git diff --cached

查看已暂存但未提交的变更。

四、特殊查看需求

1. 查看某行代码的最后修改

git blame path/to/file -L 10,15

显示文件中10-15行每行代码的最后修改信息(作者、提交等)。

2. 查看分支关系图

git log --all --graph --decorate --oneline

图形化显示所有分支的拓扑关系。

3. 查看特定时间段的提交

git log --since="2 weeks ago" --until="3 days ago"

查看两周前到三天前的提交记录。

五、自定义输出格式

git log支持通过--pretty=format自定义输出格式:

占位符说明
%H完整提交哈希
%h简短提交哈希
%an作者名字
%ae作者邮箱
%ad作者日期
%ar相对作者日期(如”2 hours ago”)
%s提交信息
%d引用名称(如分支、标签)

示例

git log --pretty=format:"%h - %an, %ar : %s"

输出格式示例:abc123 - John Doe, 2 hours ago : Fix login bug

六、实用别名设置

可以将常用查询设置为Git别名,简化命令:

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

设置后,只需输入git lg即可使用这个格式化的日志输出。

七、总结表格

需求命令
基本提交历史git log
简洁单行显示git log --oneline
带变更内容git log -p
图形化分支git log --graph --all
按时间筛选git log --since="2023-01-01" --until="2023-12-31"
按作者筛选git log --author="John"
按内容搜索git log -S"keyword"
文件历史git log -- path/to/file
详细查看提交git show commit-hash
比较差异git diff commit1..commit2
代码追溯git blame file

掌握这些Git历史查看命令和参数组合,可以大大提高代码审查、问题排查和项目分析的效率。根据实际需求灵活组合这些参数,能够获取最符合当前场景的提交信息视图。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞24 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容