11.4.5 文件追溯:git blame

在软件开发过程中当发现Bug并定位到具体的代码时,Git的文件追溯命令可以指出是谁在什么时候,以及什么版本引入的此Bug。

当针对文件执行git blame命令时,就会逐行显示文件,在每一行的行首显示此行最早是在什么版本引入的,由谁引入的。


$ cd/path/to/my/workspace/gitdemo-commit-tree

$ git blame README

^e80aa74 (Jiang Xin 2010-12-09 14:00:33+0800 1) DEMO program for git-scm-book.

^e80aa74 (Jiang Xin 2010-12-09 14:00:33+0800 2)

^e80aa74 (Jiang Xin 2010-12-09 14:00:33+0800 3) Changes

^e80aa74 (Jiang Xin 2010-12-09 14:00:33+0800 4) =======

^e80aa74 (Jiang Xin 2010-12-09 14:00:33+0800 5)

81993234 (Jiang Xin 2010-12-09 14:30:15+0800 6) * create node A.

0cd7f2ea (Jiang Xin 2010-12-09 14:29:09+0800 7) * create node C.

776c5c9d (Jiang Xin 2010-12-09 14:27:31+0800 8) * create node B.

beb30ca7 (Jiang Xin 2010-12-09 14:11:01+0800 9) * create node F.

^3252fcc (Jiang Xin 2010-12-09 14:00:33+0800 10) * create node J.

^634836c (Jiang Xin 2010-12-09 14:00:33+0800 11) * create node I.

^83be369 (Jiang Xin 2010-12-09 14:00:33+0800 12) * create node E.

212efce1 (Jiang Xin 2010-12-09 14:06:34+0800 13) * create node D.

^2ab52ad (Jiang Xin 2010-12-09 14:00:33+0800 14) * create node H.

^e80aa74 (Jiang Xin 2010-12-09 14:00:33+0800 15) * create node G.

^e80aa74 (Jiang Xin 2010-12-09 14:00:33+0800 16) * initialized.


只想查看某几行,使用-L n,m参数,命令如下:


$git blame-L 6,+5 README

81993234(Jiang Xin 2010-12-09 14:30:15+0800 6) * create node A.

0cd7f2ea(Jiang Xin 2010-12-09 14:29:09+0800 7) * create node C.


11.4.5 文件追溯:git blame - 图1