代码之家  ›  专栏  ›  技术社区  ›  skiphoppy

如何搜索Git历史记录以查找消失的行?

git
  •  42
  • skiphoppy  · 技术社区  · 15 年前

    我需要在Git存储库中搜索特定文件的历史记录,以找到一行丢失的文件。提交消息将没有任何相关文本可供搜索。我使用什么命令?

    进一步的细节:这是我在我们的非恒星任务跟踪软件中的待办事项列表的历史。我已经保存它两年了,因为在软件中没有足够的信息。不幸的是,我的提交消息通常只有任务ID,我需要做的是按主题而不是按数字找到一个已关闭的任务。是的,真正的解决方案是更好的任务跟踪软件,但这完全是我无法控制的。

    2 回复  |  直到 15 年前
        1
  •  80
  •   Cascabel    15 年前

    这是鹤嘴锄的工作!

    从Git日志手册页:

    -S<string>

    查找引入或删除 <string> . 请注意,这与仅在diff输出中出现的字符串不同;有关更多详细信息,请参阅gitdiffcore(7)中的pickaxe条目。

    当然,您可以使用其他选项缩小范围,例如:

    git log -Sfoobar --since=2008.1.1 --until=2009.1.1 -- path_containing_change
    

    那不是很有用吗?

        2
  •  0
  •   Kzqai    15 年前

    怎么样 git log --stat | grep 'filename' 开始缩小范围?