1

我正在尝试git blame一个特定的文件。如果我理解正确,它会显示对文件所做的所有修改以及由谁进行的修改。
但是当我运行命令时,结果并没有以有序的方式出现。我必须搜索条目以确定日期的最后一次更改。
报告结果的顺序是什么?我怎样才能根据修改的顺序得到报告?

4

2 回答 2

6

git blame <filename>对于文件中的每一行,显示更改该行的最后一次提交。

要获取涉及文件的提交列表,请使用git log <filename>,可能-p还可以查看更改。

于 2013-05-27T19:59:12.550 回答
3

git blame“用上次修改该行的修订版的信息注释给定文件中的每一行。” 输出按文件中的行排序。这是一个典型的输出:

b62460a4 base.scm        (GoZoner 2011-01-11 17:44:21 -0800   1) ;-*- Mode: scheme -*-
b62460a4 base.scm        (GoZoner 2011-01-11 17:44:21 -0800   2) ;
b62460a4 base.scm        (GoZoner 2011-01-11 17:44:21 -0800   3) ; File:    base.scm
b62460a4 base.scm        (GoZoner 2011-01-11 17:44:21 -0800   4) ; Date:    Tue Jan 11 2011
...
528c5424 base.scm        (GoZoner 2012-04-21 10:01:14 -0700  26) ; ______________________________________________
b62460a4 base.scm        (GoZoner 2011-01-11 17:44:21 -0800  27) 
499ff1ef base.scm        (GoZoner 2010-10-21 22:08:30 -0700  28) (library (quirk base)
d1376b80 base.scm        (GoZoner 2011-01-01 16:31:00 -0800  29)   (export ignore identity always compose complem
6150ec79 base.scm        (GoZoner 2013-04-22 08:02:43 -0700  30)        iota choose choose-by split substitute de
9fc800e6 base.scm        (GoZoner 2010-10-28 07:36:01 -0700  31)        any? every? count index while until repea
499ff1ef base.scm        (GoZoner 2010-10-21 22:08:30 -0700  32)        member? associate
93933128 base.scm        (GoZoner 2010-10-22 01:03:43 -0700  33)        intersection union difference
3e3f47ee base.scm        (GoZoner 2010-11-20 15:59:38 -0800  34)        list-ref-at list-set-at list-ref-last lis
3e3f47ee base.scm        (GoZoner 2010-11-20 15:59:38 -0800  35)        vector-ref-at vector-index
5eae93ea base.scm        (GoZoner 2010-10-23 10:30:37 -0700  36)        symbol-append

您可以看到:提交、文件名、用户、日期、行号和每行的内容。

如果您想要按日期分组的内容,您有两种选择:

  • git log -- <filename>按时间倒序显示提交
  • git show <commit> -- <filename>显示给定提交的文件更改。
于 2013-05-27T20:39:27.277 回答