搜索特定提交

时间:2012-09-17 12:43:34

标签: git

我正在开发一个混合C ++代码和HTML模板文件的大型项目。

我今天了解到,我应该将我对C ++文件(,只有那些)所做的更改合并到另一个分支上,但正如您可能猜到的那样:我不记得所有提交我做到了。

有没有办法让我通过git历史记录搜索所有符合所有这些条件的提交

  • 由我撰写
  • 位于提交A和提交B
  • 之间
  • 包含对.cpp.c.h文件的更改(如果有帮助,则位于特定子目录中)。

2 个答案:

答案 0 :(得分:7)

我终于想出了如何做到这一点:

要搜索与特定作者匹配的提交,您可以使用--author选项:

git log --author=ereOn

要从提交AB搜索提交,请使用A..B表单:

git log 9223253452..HEAD

最后,只关心涉及特定文件或路径的提交:

git log -- path_or_file

--用于表示可选参数的结束和位置参数的开头。

全部合并,这给出了:

git log --author=ereOn 9223a6d916c034345..HEAD -- cpp_folder/*

这就像魅力一样:)

答案 1 :(得分:1)

查看git log,正在运行git log --stat会显示您正在寻找的许多详细信息,您可以通过将其设置为像git log --stat | grep searchterm这样的grep进行搜索,但这只会给出你跟你的搜索词一致。

您可以使用此标记--author "your name"

将其限制为作者

在我的机器上git log的输出是通过vim / less运行的,您可以使用vim的搜索命令(如/searchterm)搜索日志,以查找所有出现的术语,转到下一个点击n以转到上一个点击N

查看git log

的手册页