git blame命令详解
git blame用来追溯一个指定文件的历史修改记录。它能显示任何文件中每行最后一次修改的提交记录。 所以,如果你在代码中看到一个有 bug 的方法,你可以使用 git blame 标注这个文件,查看哪一次提交引入了这行。
用法:
git blame filename
可以使用 -L 指定文件的行数范围:
git blame -L n1,n2 filename
例如:
第一列是commit id;接下来是提交人、提交时间。注意一下 ^1da177e4c3f4 这个提交的几行,其中的前缀 ^ 指出了该文件自第一次提交后从未修改的那些行。
目前,在各大编辑器工具中都集成了该功能。例如eclise:
idea:
https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E4%BD%BF%E7%94%A8-Git-%E8%B0%83%E8%AF%95
下面再给大家分享一下这么好用的git blame命令,你用了吗
git blame用了好多年,最近发现有些小伙伴还没用过,特此记录一下。
git blame命令可以查看一个代码文件中每一行是谁最后添加或者修改的,使用方法如下:
git blame 文件名
打印结果是每行代码最后的修改时间、修改人、提交对应hash号。下面是其中的一行:
fa213368 (xiaoxia.wang 2020-09-01 15:37:01 +0800 292) public static final boolean MULTIUSER_DEBUG = false;
第一列,hash号,如果想看这个提交的详细内容,可以使用“git show + hash号”命令进行查看
第二列,提交人姓名 ,根据这个信息可以知道这行代码最后是谁修改的。
第三列,修改日期
第四列,代码
有了git blame命令,我们就可以很容易查出来bug是谁改出来的,嘿嘿。
总结
到此这篇关于git blame命令详解的文章就介绍到这了,更多相关git blame命令内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
解决因文件权限导致git fetch命令执行失败的问题
前言 最近在一个基于 git 的发布系统中拉取代码,发现无法拉取最新的提交记录,通过调试和查看日志文件找到一行错误:error: cannot open .git/FETCH_HEAD: Permission denied,原因是文件权限问题导致. 问题原因 Permission denied,应该权限问题,到项目 .git 目录下查看文件的用户和组: 发现 FETCH_HEAD 的用户和组都是 root 权限,而发布系统的运行进程是 nobody 用户,所以没有权限执行这个 git 命令:gi
-
分享下自己总结的Git常用命令
使用git也有一段时间了,把自己常用的命令用自己的描述记录起来,方便自己备忘也方便其他人参考. 目录: 最基本的命令: git clone 拷贝并跟踪远程的master分支.跟踪的好处是以后可以直接通过pull和push命令来提交或者获取远程最新的代码,而不需要指定远程分支名字. git submodule init git submodule update 参考示意图 HEAD 指向当前的commit 对象,同时也用来表明我们在哪个branch上工作.所以当我们使用HEAD来操作指针的时候,其
-
Git代码提交流程及git命令汇总(基础篇)
基本了解 git命令是一些命令行工具的集合,它可以用来跟踪,记录文件的变动.比如你可以进行保存,比对,分析,合并等等.这个过程被称之为版本控制.已经有一系列的版本控制系统,比如SVN, Mercurial, Perforce, CVS, Bitkeepe等等. Git是分布式的,这意味着它并不依赖于中心服务器,任何一台机器都可以有一个本地版本的控制系统,我们称之为仓库.如果是多人协作的话,你需要还需要一个线上仓库,用来同步信息.这就是GitHub, BitBucket的工作. 自己用Git有一段
-
Linux中Git集中操作命令汇总
SyntaxHighlighter git version # 查看版本 git config -l # 查看当前配置 git config --global user.name "Dean" # 设置用户名,邮箱 git config --global user.email g.xiangyu1990@gmail.com # 设置用户名,邮箱 git config --global alias.ci commit # 设置git命令的别名 git config --global al
-
Git命令的简单整理大全
前言 自动帮助记录每次文件的改动,同时协作永工作 学习git命令是充分必要的 集中式和分布式 分布式每个人电脑都是一个完整的版本库,也有类似中央服务器的电脑,但是这个服务器只是用来交互打架的修改没有它大家也一样干活,只是交互修改不方便而已 安装只要安装了xcode就可以了 仓库:里面文件修改,删除,添加都能被git追踪,认识时刻都能追踪历史或者将来某哥时刻还原只能追踪文本文件的改动 创建目录和查看路径 mkdir 创建目录 cd 进入到目录里面 pwd 用于显示当前的目录 cat
-
Git pull命令与fetch命令的区别
Git pull命令与fetch命令的区别 今天在公司碰到个问题,公司不使用master分支作为主分支,而使用release分支作为主分支,这就碰到了个问题,也就是当clone一个项目下来的时候,如果master跟release分支有冲突,就不能pull了,自己还要解决冲突. 刚下一个项目,也不懂冲突到底怎么回事,也就很难搞了. 这个时候,就不得不提Git的两个命令,git fetch和git pull Git中从远程的分支获取最新的版本到本地有这样2个命令: Git fetch git fet
-
Git 常用命令速查表(图文+表格)
一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am "init" 提交并且加注释 git remote add origin git@192.168.1.119:ndshow git push origin master 将文件给推到服务器上 git remote show origin
-
git blame命令详解
git blame用来追溯一个指定文件的历史修改记录.它能显示任何文件中每行最后一次修改的提交记录. 所以,如果你在代码中看到一个有 bug 的方法,你可以使用 git blame 标注这个文件,查看哪一次提交引入了这行. 用法: git blame filename 可以使用 -L 指定文件的行数范围: git blame -L n1,n2 filename 例如: 第一列是commit id:接下来是提交人.提交时间.注意一下 ^1da177e4c3f4 这个提交的几行,其中的前缀 ^ 指出
-
Git 命令详解及常用命令整理
Git 命令详解及常用命令 Git作为常用的版本控制工具,多了解一些命令,将能省去很多时间,下面这张图是比较好的一张,贴出了看一下: 关于git,首先需要了解几个名词,如下: Workspace //工作区 Index / Stage //暂存区 Repository //仓库区(或本地仓库) Remote //远程仓 一.新建代码库 // 在当前目录新建一个Git代码库 $ git init // 新建一个目录,将其初始化为Git代码库 $ git init [project-name] //
-
python flask安装和命令详解
Flask Web开发实战学习笔记 Flask简介 Flask是使用Python编写的Web微框架.Web框架可以让我们不用关 心底层的请求响应处理,更方便高效地编写Web程序.因为Flask核心简 单且易于扩展,所以被称作微框架(micro framework).Flask有两个主 要依赖,一个是WSGI(Web Server Gateway Interface,Web服务器网关 接口)工具集--Werkzeug(http://werkzeug.pocoo.org/),另一个是 Jinja2模
-
在IDEA(2020.2)中配置Git及使用Git的图文详解
一. idea中配置git 先配置好git的本地地址,然后test,出现版本号说明测试成功! 二. idea中使用git 可以直接在idea中使用命令操作git 1.初始化本地仓库 选好项目点击OK即可. 2.添加到暂存区 3.提交到本地仓库 也可以在这里提交,效果一样只是位置不一样 4.推送至远程仓库 5.直接克隆项目到本地 6.拉取项目到本地 7.创建分支 这时候就切换到了新创建的分支 到此这篇关于在IDEA(2020.2)中配置Git及使用Git的图文详解的文章就介绍到这了,更多相关IDE
-
redis-cli -p 6379 info命令详解
Server 服务器基本信息 # redis版本号 redis_version:5.0.3 # redis源码包git信息 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:da69b07a37c06dc8 # 运行模式("独立","哨兵"或"集群") redis_mode:standalone # 操作系统信息 os:Linux 3.10.0-514.el7.x86_64 x86_
-
基于使用paramiko执行远程linux主机命令(详解)
paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件. 关于使用paramiko执行远程主机命令可以找到很多参考资料了,本文在此基础上做一些封装,便于扩展与编写脚本. 下面直接给出代码: # coding: utf-8 import paramiko import re from time import sleep # 定义一个类,表示一台远端linux主机 class Linux(object): # 通过IP, 用户名,密码,
-
hbase shell基础和常用命令详解
HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase
-
linux中 pmap 命令详解
通过查看帮助,返回了如下信息: Usage: pmap [options] pid [pid ...] Options: -x, --extended show details -X show even more details WARNING: format changes according to /proc/PID/smaps -XX show everything the kernel provides -c, --read-rc read the default rc -C, --re
-
linux 中ls命令详解
ls命令用来显示目标列表,在Linux中是使用率较高的命令.ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件. 语法 ls(选项)(参数) 选项 -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出): -A:显示除影藏文件“.”和“..”以外的所有文件列表: -C:多列显示输出结果.这是默认选项: -l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列: -F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文
-
linux mkdir命令详解
mkdir命令用来创建目录.该命令创建由dirname命名的目录.如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录:如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录.在创建目录时,应保证新建的目录与它所在目录下的文件没有重名. 注意:在创建文件时,不要把所有的文件都存放在主目录中,可以创建子目录,通过它们来更有效地组织文件.最好采用前后一致的命名方式来区分文件和目录.例如,目录名可以以大写字母开头,这样,在目录列表中目录名就出现在前面. 在一个子目录
随机推荐
- 详解Docker使用Linux iptables 和 Interfaces管理容器网络
- Java的数据类型和参数传递(详解)
- Asp.net MVC SignalR来做实时Web聊天实例代码
- JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
- PHP通过header实现文本文件下载的代码
- python实现数组插入新元素的方法
- 什么是JavaScript
- MySQL下高可用故障转移方案MHA的超级部署教程
- Android利用CountDownTimer实现点击获取验证码倒计时效果
- 基于BootStrap的前端分页带省略号和上下页效果
- 基于Bootstrap使用jQuery实现简单可编辑表格
- 详解使用php调用微信接口上传永久素材
- win10设置java环境变量的方法
- JQuery Ajax WebService传递参数的简单实例
- Win2008 网络策略设置方法 让访问更安全
- php的日期处理函数及uchome的function_coomon中日期处理函数的研究
- Java中EnumMap代替序数索引代码详解
- 用java实现杨辉三角的示例代码
- Java中static变量能继承吗
- 单链表实现反转的3种方法示例代码