如何找到提交历史记录中存在特定代码行的文件?

时间:2018-07-19 16:02:39

标签: git

我希望从上一次提交中恢复一行代码,因为事实证明,这一行代码非常重要且有用。

例如,假设这是我的代码行:

df[df$type == "creator", ]

问题是我忘记了保存此代码的文件,也记不起提交的位置/时间。

我使用SourceTree并尝试了Search选项,但是它只为我提供了搜索Commit MessageFile ChangesAuthors的选项。

我使用File Changes搜索选项,但结果显示了先前的提交,而我希望在某个时间点查看包含代码行的文件列表。

除了手动查看每个提交中每个文件的每个版本外,我不确定如何使用它。

我该怎么做?

请注意,我也可以通过终端使用建议/解决方案。

更新: 代码行可以位于三个文件之一中,我大致知道它的提交时间(大约两周前)。

1 个答案:

答案 0 :(得分:2)

尝试git log,例如:

git log --name-only -S"<text-you-search-for-goes-here>"

它将在任何时间点打印所有文件中包含搜索文本的所有提交,并针对每个提交显示:

  • 提交哈希
  • 作者
  • 提交日期
  • 提交消息
  • 出现搜索文本的文件名(多亏--name-only