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

相关文章

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE