我是在两年前,也就是2017年的时候,进入一家新的公司才学习的Git。也算是我那近3年来第一家以后端工程师的职位加入团队形式的工作。
刚进去一两个月,后端也就三四个人,合作开发却总是出现代码冲突或者代码错误上传的问题,还总怀疑到我头上,然后我不得不在Git代码里翻历史记录,以此找出原因,从而来证明自己的清白。背锅很不爽,这也是我为何给本篇取名叫:找出真凶。
最近才偶然发现git blame这个命令,正是解决“找出真凶”这个问题的快速方法。
通过git blame命令,我们可以查出某个文件的每一行内容到底是由哪位大神所写。
现在就让我们来看看如何使用这个命令。
查看某个文件的每一行内容由谁所写:
git blame 文件名
结果形式大概如下图所示:
图中1)、2)这些符号代表文件的第多少行,符号后面就是文件当行的内容。
从上图我们就可以看出,fengchezhi这位同志,在2019-09-22 17:19:43这个时间点提交了12行代码。
本文是翟码农个人博客蓝翟红尘里的Linux专题下的Git系列的相关文章,转载请注明出处:http://www.zhai14.com/blog/git-blame-command-help-u-find-out-who-made-the-serious-mistake.html
如果只查文件中某一部分由谁所写:
git blame 文件名 | grep "查找词"
或者:
git blame 文件名 -L a,b
-L 参数表示后面接的是行号(Line), a,b代表查询文件的第a行到第b行之间的文件内容情况。
a, 则代表从第a行到文件结尾
,b则代表从文件开头到第b行。
假如我们要查上图的第5行,命令则如下所示:
git blame webpack.mix.js | grep "Mix Asset"
或
git blame webpack.mix.js -L 5,5
仅仅这些,我想应该已经足够帮助我们找出真凶了。
如果你想更加强大,这里有git blame命令的详细文档:https://git-scm.com/docs/git-blame,供你慢慢啃。
话说,两年前的我怎么就没有百度呢,居然还跑到git仓库里翻git log日志记录。