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.