git命令之追溯文件修改记录:git blame 和 git show【笔记】

2023-11-21 07:30

本文主要是介绍git命令之追溯文件修改记录:git blame 和 git show【笔记】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、git blame

1.1、git blame用法

1.2. 举例

2、git show

2.1、git show命令详解

语法

参数

说明

2.2、显示提交详情

语法

案例

2.3、显示标签详情

语法

案例

2.4、显示某次提交某个文件的详情

语法

案例

2.5、例子


1、git blame

1.1、git blame用法

git blame用来追溯一个指定文件的历史修改记录

git blame用来追溯一个指定文件的历史修改记录。它能显示任何文件中每行最后一次修改的提交记录。 所以,如果你在代码中看到有一个bug,你可以使用 git blame 标注这个文件,查看哪一次提交引入了这行。

命令用法:

git blame filename

可以使用 -L 指定文件的行数范围:

git blame -L n1,n2 filename

1.2. 举例

git blame -L 69,82 Makefile		查看Makefile这个文件第69--82行最近一次的修改记录

在这里插入图片描述
git blame的具体显示格式是:

commit ID  (代码提交作者  提交时间  代码位于文件中的行数)  实际代码

如上图,第一列是commit id;接下来是提交人、提交时间、代码位于文件中的行数、实际代码。注意一下 ^1da177e4c3f4 这个提交的几行,其中的前缀 ^ 指出了该文件自第一次提交后从未修改的那些行。

2、git show

git show 命令用于显示各种类型的对象,对于提交,它显示日志消息和文本差异,对于标签,它显示标签消息和引用对象。

2.1、git show命令详解

语法

git show [options] <object>

参数

参数描述
optionsgit show 命令使用的选项。
object需要查看的对象。

说明

显示一个或多个对象(blobs,树,标签和提交)。对于提交,它显示日志消息和文本差异。 它还以 git diff-tree --cc 生成的特殊格式呈现合并提交。

对于标签,它显示标签消息和引用对象。对于树,它显示的名称(相当于使用 git ls-tree 和 --name-only 选项)。

对于简单的 blobs,它显示了普通的内容。该命令采用适用于 git diff-tree 命令的选项来控制如何显示提交引入的更改。

2.2、显示提交详情

语法

git show commitId

案例

我们首先,使用 git log 命令,查看提交日志,具体命令如下:

git log

执行完毕后,如下图所示:

现在,我们使用 git show 命令,查看提交的详情,具体命令如下:

git show 1c9fc20

执行完毕后,如下图所示:

我们看到,此时,我们使用了 git show 命令查看了提交的详情。

2.3、显示标签详情

语法

git show tagname

案例

我们首先,使用 git tag 命令,查看 git 的 tag 列表,具体命令如下:

git tag

执行完毕后,如下图所示:

现在,我们使用 git show 命令,查看 tag 的详情,具体命令如下:

git show releaseV2

执行完毕后,如下图所示:

 我们看到,此时,我们使用了 git show 命令查看了 tag 的详情。

2.4、显示某次提交某个文件的详情

语法

git show commitId fileName

案例

我们首先,使用 git log 命令,查看 git 的提交日志列表,具体命令如下:

git log

执行完毕后,如下图所示:

 现在,我们使用 git show 命令,查看某次提交某个文件的修改详情,具体命令如下:

git show 7aed75a4 haicoder.txt

执行完毕后,如下图所示:

 我们看到,此时,我们使用了 git show 命令查看了某次提交的某个文件的修改详情。

2.5、例子

  • git show [commit_id] 查看某次历史提交信息的完整信息
    在这里插入图片描述

  • git show [commit_id]:fileName 查看某次commit中某个文件的内容
    在这里插入图片描述

  • git show HEAD查看HEAD标签当前指向的提交的完整信息

  • git show HEAD:fileName 查看HEAD标签当前指向的提交的文件内容
    在这里插入图片描述

这篇关于git命令之追溯文件修改记录:git blame 和 git show【笔记】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/400783

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手