有没有办法使用git查看文件的所有版本?

时间:2011-08-25 18:20:07

标签: git

我经常需要在旧版本的脚本中找到我编码的内容,但我不知道何时。我经常尝试在日志中跳转,找到不同的版本,看看他们是否有变化,或者我只是放弃并尝试别的东西。

在两个日期或哈希值之间输出文件的每个版本的命令特别有用。然后一个简单的grep会找到我正在寻找的东西。

它可能会像这样:

git showeverything d612905a..b39af32e /path/to/file /tmp/output

4 个答案:

答案 0 :(得分:4)

git有一个完美的工具:git log -S将搜索更改并仅显示这些提交

# search changes in all branches which touch the string $abc in a file
git log -p -S'$abc' --all -- path/to/file

答案 1 :(得分:0)

我知道这可能不是您正在寻找的答案,但是每个git托管网站/服务都有一个很好的GUI,可以查看存储库中每个文件的提交历史记录。我经常使用它。

答案 2 :(得分:0)

您可以使用git log [commit_range/dates/other_constraints] -- <filename(s)>显示与特定文件相关的所有更改日志,并且可以向日期/提交/等添加约束。同样。

使用git show <same stuff>在每个阶段实际显示文件......

答案 3 :(得分:0)

git log file显示影响 file 的所有提交的提交ID。

git show commitid:file将相关文件版本的内容打印到stdout。

请注意,在git show命令中,如果您只是指定文件名相对于git存储库的根目录,除非您指定路径,而不是指定当前目录。要在当前目录中显示文件:

git show commitid:./file*