请参见第N个以前版本的文件

时间:2015-03-19 14:49:15

标签: git

我想看一个旧版本的文件,但是这个:

git show HEAD~1:main.c

给了我之前的提交。自上次提交以来,该文件没有更改,因此我看到相同的内容。为了找到该文件的旧版本,我需要手动增加修订版规范,直到找到实际的差异。这令人沮丧。

在这种特殊情况下,我不关心提交:我只想查看此特定文件的先前版本。如何提供“第N个最旧版本”类型的修订规范?修订规范I know始终与提交相关,而不是与文件版本相关。

我最接近的是:

git log --follow --pretty=oneline -- annotated-bower.json

这给了我一个这个文件被更改的提交列表。现在我看到了这个列表,我怎么能告诉git show类似的东西:

git show OLDER~3:main.c

无需手动复制粘贴提交规范:

git show b27a57c6732200d8ef8b5b8c87d07fe67f37e9db:main.c

我当然可以自己实现:

git-previous.sh main.c 3

解析git log --follow --pretty=oneline的输出以获取提交哈希并随后调用git show,但我想避免重新发明轮子。此外,这似乎是一个非常有用的功能,这是肯定股票git的一部分,我刚刚监督它,对吗?

1 个答案:

答案 0 :(得分:3)

如果你正确地喂git log,你不必解析任何事情:

git log -10 --follow --pretty=%h -- /path/to/your/file

打印出文件的最后10个(-10)短提交哈希值(%h)。

获取git log的输出,将其放入列表并循环输入。完成。

也许这就是为什么没有单独的命令来实现这一目标......以及关于你的说明

  

此外,这似乎是一个非常有用的功能[...]

我现在使用git很长一段时间,从来没有真正需要查看序列中文件的历史记录。变化很有趣。因此,您还可以提供gitk的路径,这会导致显示的更改列表与gitk中的差异:

gitk -- /path/to/your/file