1

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 只给出包含每一行的最后一个版本。带有镐的 git log 仅打印与模式匹配的行,并给出提交消息而不是文件本身中的行。

有什么方法可以在 git 中执行类似于上述 perforce 命令的操作吗?

提前致谢,

格雷格

4

3 回答 3

1

Git 中没有直接等价的东西——因为 Git 没有线性历史,所以类似的东西1-3没有意义。

于 2012-01-10T23:04:54.253 回答
0

我想你可以使用git blame它——它将显示每一行的源提交。

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

于 2012-01-10T23:16:45.717 回答
0

使用怎么样git annotate,它可以为每个文件输出详细的注释

于 2012-06-20T07:39:27.647 回答