购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.11 这行代码是谁写的

啊!网站怎么挂了?!这行代码是谁写的?!

这种状况经常会发生,想要知道某个文件的某一行代码是谁写的吗?在Git中可使用git blame命令帮你找出来:

$ git blame index.html
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 1) <!DOCTYPE html>
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 2) <html>
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 3)     <head>
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 4)           <meta
charset="utf-8">
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 5)           <title>  首页
</title>
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 6)     </head>
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 7)     <body>
657fce78 (Eddie Kao 2017-08-02 16:53:43 +0800 8)     <div
class="container">
657fce78 (Eddie Kao 2017-08-02 16:53:43 +0800 9)           </div>
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 10)    </body>
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 11) </html>

这样就可以很清楚地看出来哪一行代码是谁在什么时候写的,而最前面看起来像乱码的文本,正是每次Commit的识别代码,表示这一行代码是在哪一次的Commit中加进来的。以这个例子来说,除了第8行和第9行的代码(657fce78),其他的代码都是在同一个Commit中加进来的(abb4f438)。

如果文件太大,也可以加上-L参数,只显示指定行数的内容:

$ git blame -L 5,10 index.html
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 5)      <title> 首页 </
title>
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 6) </head>
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 7) <body>
657fce78 (Eddie Kao 2017-08-02 16:53:43 +0800 8)      <div 
class="container">
657fce78 (Eddie Kao 2017-08-02 16:53:43 +0800 9)      </div>
abb4f438 (Eddie Kao 2017-08-02 16:49:49 +0800 10) </body>

这样就只会显示第5~10行的信息。

如果使用SourceTree,可以在想查看的文件上右击,选择Blame Selected选项,如图5-27所示。

图5-27

然后就会进入图5-28所示的界面。

图5-28

谜之音

很多时候,git blame抓到的“凶手”大多都是自己! bnQuyZhkFSZNxlGgVtiuj9tGI/NTq4SiN4Fxf19WsNNnkHlIQFZD/fPIGGSuZd5z

点击中间区域
呼出菜单
上一章
目录
下一章
×