2

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

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

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

  • 是我写的
  • 位于commitA和commit之间B
  • 包含对或文件的更改(如果有帮助.cpp,它们位于特定的子目录中)。.c.h
4

2 回答 2

7

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

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

git log --author=ereOn

要搜索从 commitA到的提交B,请使用以下A..B形式:

git log 9223253452..HEAD

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

git log -- path_or_file

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

所有结合起来,这给出了:

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

这就像一个魅力:)

于 2012-09-17T13:15:19.017 回答
1

查看git log,运行git log --stat将显示您正在寻找的许多详细信息,您可以通过管道将其搜索为 grep like git log --stat | grep searchterm,但这只会为您提供与您的搜索词相关的行。

您可以使用此标志将其限制为作者--author "your name"

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

查看手册页git log

于 2012-09-17T13:00:18.717 回答