什么是相当于'p4 annotate -a'的git?

时间:2012-01-10 23:00:16

标签: git perforce annotate

perforce有一个非常有用的命令,可以打印出文件的所有修订版,注释表明文件中每行包含的版本。例如,假设我创建了一个文件foo,将其签入,然后签入对该文件的两个后续更改。以下是foo的三个版本:

aaa            aaa           aaa
bbb            bbb           bbb
ccc            ccc           ccc
               ddd           ddd
               eee           fff
               fff

以下是p4 annotate -a的内容:

1-3: aaa
1-3: bbb
1-3: ccc
2-3: ddd
2-2: eee
2-3: fff

我看到foo的整个历史记录,注释表明每行包含哪些版本。

AFAICT,git blame只给出包含每一行的最后一个版本。带有pickaxe的git log只打印与模式匹配的行,并提供提交消息而不是文件本身中的行。

有没有办法在git中执行类似于上面的perforce命令的东西?

提前致谢,

格雷格

3 个答案:

答案 0 :(得分:1)

在Git中没有任何直接的等价物 - 因为Git没有线性历史,像1-3这样的东西是没有意义的。

答案 1 :(得分:0)

我可以使用git blame - 它会显示每行的源提交。

这可能不是你想要的,但它是朝着正确方向迈出的一步。您可以将该输出与git log的输出结合起来,并构建您想要的结果。

答案 2 :(得分:0)

如何使用git annotate,它可以输出每个文件的详细注释