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

相关文章

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

Linux下修改hostname的三种实现方式

《Linux下修改hostname的三种实现方式》:本文主要介绍Linux下修改hostname的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下修改ho编程stname三种方式方法1:修改配置文件方法2:hFvEWEostnamectl命

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

Git如何修改已提交人的用户名和邮箱

《Git如何修改已提交人的用户名和邮箱》文章介绍了如何修改Git已提交人的用户名和邮箱,包括注意事项和具体步骤,确保操作正确无误... 目录git修改已提交人的用户名和邮箱前言第一步第二步总结git修改已提交人的用户名和邮箱前言需注意以下两点内容:需要在顶层目录下(php就是 .git 文件夹所在的目

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明