我正在进行一些CSS清理,并希望找到我们的代码中使用类的位置,以确保它实际上在我们的代码中使用,而不是在我们的CMS等中使用。
我们正在使用Git,因此我使用以下内容搜索包含我正在寻找的搜索字词的代码差异, scrollerWrapper 。
git log -GscrollerWrapper -p
使用-p
标记我获取文件的实际更改,但在某些情况下,它会返回数千行的文件。理想情况下,我只想查看我正在搜索的术语所在的行(如果我能在行之前/之后看到 x 行,那就更好了。)
我已查看the documentation for git-log但我没有看到相关参数。
是否可以传递一些额外的参数来将diff限制为仅包含我的搜索词的行,或者运行一个不同的查询来执行此操作?
谢谢!
答案 0 :(得分:1)
最简单的方法是使用pager内置的搜索工具,这样可以让您滚动浏览git log
的文字。
对于大多数寻呼机,请键入/
,然后输入您要搜索的内容。因此,正常运行git log -GscrollerWrapper -p
,然后键入/
,然后键入scrollerWrapper
。这将进入scrollerWrapper
的第一次出现。点击n
会转到下一个。
答案 1 :(得分:0)
您可以将git log
输出管道传输到grep
。在Windows上,您可以使用Git Bash执行此操作。 grep
具有参数,用于指定为每个匹配的行提供多少上下文。
答案 2 :(得分:0)
一般来说,每当我需要搜索存储库时,我总是遵循古老的Gitk。幸运的是,如果您了解ps
命令的方法,则可以在搜索时看到Gitk在后台运行的实际命令。 Gitk提供搜索功能,扫描存储库历史记录以添加/删除字符串(我相信这是您正在寻找的)。它实际在后台运行的命令是git diff-tree
,这是一个非常复杂的命令,有大约470亿个选项。
无论如何,我认为git diff-tree -r -U3 -Ssearch_string <tree-ish search target>
的某些内容对您有用。
-r
以递归方式进行整个搜索-U
用于输出统一差异,其中3
是上下文行数-S
用于实际搜索字符串。这种格式看起来很有趣,并且不要忘记你可能需要根据你要搜索的内容来逃避特殊字符<tree-ish search target>
是您要搜索的。您可以放置当前HEAD
或master
或任何其他树型参考的提交哈希值。如果您曾经在命令行上使用git生成统一差异,那么输出应该非常熟悉,并且看起来像:
$ git diff-tree -r -U3 -Sexisting_user 599479fc43401942cedef7187677fa222ec54c94
599479fc43401942cedef7187677fa222ec54c94
diff --git a/src/AppBundle/Controller/SubscriptionController.php b/src/AppBundle/Controller/SubscriptionController.php
index 3670973..55de07a 100644
--- a/src/AppBundle/Controller/SubscriptionController.php
+++ b/src/AppBundle/Controller/SubscriptionController.php
@@ -23,28 +23,17 @@ class SubscriptionController extends AbstractController
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $existing_user = $this->get('user_dao')->getUserByEmail($newly_invited_user->getEmail());
...
这应该可以为您提供所需的一切,提交参考号,行号和背景信息。