我经常需要在旧版本的脚本中找到我编码的内容,但我不知道何时。我经常尝试在日志中跳转,找到不同的版本,看看他们是否有变化,或者我只是放弃并尝试别的东西。
在两个日期或哈希值之间输出文件的每个版本的命令特别有用。然后一个简单的grep会找到我正在寻找的东西。
它可能会像这样:
git showeverything d612905a..b39af32e /path/to/file /tmp/output
答案 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*