是否可以在 Git 项目的所有分支中执行“grep 搜索”?

2024-06-26

是否可以运行git grep在 Git 控件源项目的所有分支中?或者还有其他命令要运行吗?


问题“如何在 Git 历史记录中 grep(搜索)提交的代码? https://stackoverflow.com/q/2928584/6309”建议:

 git grep <regexp> $(git rev-list --all)

这将搜索所有提交,其中应包括所有分支。

另一种形式是:

git rev-list --all | (
    while read revision; do
        git grep -F 'yourWord' $revision
    done
)

您可以在以下位置找到更多示例本文 http://travisjeffery.com/b/2012/02/search-a-git-repo-like-a-ninja/:

我在一个足够大的项目上尝试了上述方法,以至于 git 抱怨参数大小,所以如果你遇到这个问题,请执行以下操作:

git rev-list --all | (while read rev; do git grep -e <regexp> $rev; done)

(请参阅下面本答案最后一部分中的替代方案)

如果您需要的话,请不要忘记这些设置:

# Allow Extended Regular Expressions
git config --global grep.extendedRegexp true
# Always Include Line Numbers
git config --global grep.lineNumber true

这个别名也有帮助:

git config --global alias.g "grep --break --heading --line-number"

2016 年 8 月更新:R.M. https://stackoverflow.com/users/3022952/r-m评论里推荐

我有一个 ”fatal: bad flag '->' used after filename“当尝试git branch版本。该错误与HEAD别名表示法。

我通过添加解决了这个问题sed '/->/d'在管道中,在trxargs命令。

git branch -a | tr -d \* | sed '/->/d' | xargs git grep <regexp>

That is:

alias grep_all="git branch -a | tr -d \* | sed '/->/d' | xargs git grep"
grep_all <regexp>

这是对解决方案的改进chernjie https://stackoverflow.com/users/1477655/chernjie had 建议 https://stackoverflow.com/review/suggested-edits/5432005, since git rev-list --all是一种矫枉过正。

更细化的命令可以是:

# Don't use this, see above
git branch -a | tr -d \* | xargs git grep <regexp>

这将允许您仅搜索分支(包括远程分支)

您甚至可以为其创建 bash/zsh 别名:

# Don't use this, see above  
alias grep_all="git branch -a | tr -d \* | xargs git grep"
grep_all <regexp>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 Git 项目的所有分支中执行“grep 搜索”? 的相关文章

  • 如何找出在哪个提交中添加了特定代码?

    我想知道我在哪个提交中添加了下面给出的代码 if getListView getChildCount 0 getActivity findViewById android R id empty setVisibility View VISI
  • 如何在 gitolite 中安装钩子

    我已阅读全部关于钩子的文档 https github com sitaramc gitolite blob pu doc 2 admin mkd using hooks similar https stackoverflow com que
  • 如何在git中定义ESC字符?

    我想在 git 输出中使用着色 例如 git log decorate color 当我发出这个命令时 我得到的输出看起来像ESC 1 32m where ESC是反色的 在我看来 这是一个有效的转义序列 除了 033必须发送而不是字符E
  • 更快的“git rebase --preserve-merges”方法

    我通过创建一系列功能分支来使用 git 并在完成后将它们合并到 mastergit merge no ff 这会创建空的合并提交 可用于识别先前功能分支的起点和终点 为了处理多个并发分支 甚至嵌套分支 我使用 rebase 我从不合并回去
  • git 列出所有可用命令

    有没有命令可以显示 GIT 中所有可用命令的列表 有git help但它显示 usage git version exec path
  • 从子文件夹自动部署 Heroku

    我知道你可以从github自动部署到heroku 但我还没有找到一种方法只将子文件夹从github推送到heroku 从命令行我知道可以通过以下方式执行此操作 git subtree push prefix
  • 如何在cygwin下更改git中文件的大小写?

    我们在区分大小写 不敏感的混合环境 cywgin linux 中工作 今天有人通过重命名文件 将 S 更改为 s 对我们的工作流程造成了小破坏 这导致了各种有趣的跨分支合并问题 而且说实话 没有人完全确定发生了什么 在 cygwin 的 g
  • git merge 和 git merge origin 之间的区别

    这不是一个关于git merge origin branch vs git merge origin branch git merge
  • 如何快速查看哪个 Git 分支是最新的?

    例如 如果 git 上有 4 个分支 如下所示 branch1 branch2 current branch branch3 newest commits here master oldest 我的问题是 如何从 git 命令行检查我当前的
  • 在“git revert --continue”期间绕过预提交挂钩

    我当时正在做一个git revert 之前的恢复 这导致了一些合并冲突 解决冲突后 我的预提交挂钩引发了一些代码嗅探器问题 由于这些代码嗅探器通知已在其他地方修复 我想在此时使用绕过预提交挂钩git revert continue no v
  • git pull 保留本地未提交的更改

    即使存在上游更改 如何安全地更新 拉取 git 项目 保持特定文件不变 myrepo config config php 有没有一种方法 即使这个文件在远程被更改 当我 git pull 时 其他所有内容都被更新 但这个文件没有改变 甚至没
  • git fetch 失败“refs/remotes/origin/pr/34 同时跟踪两者”

    我是 git 新手 我被困在 git fetch 上 我在 TFS 和 SVN 上有更多经验 所以欢迎任何类比 所以我在 Github 上找到了一个我分叉的项目 源项目 Xpose 有色状态栏 https github com Mohamm
  • Jira 和 git:如何反映所有分支?

    使用 git Fisheye Crucible 和 Jira 4 2 的开发基础架构 自我们在 Jira 中配置映射以来 对 Fisheye 注册存储库的提交反映在 Jira 项目和票证中 然而 似乎只有主分支上的提交才会被反映 在 Cru
  • 如何在合并期间优先选择一个分支中的文件?

    前段时间我从我的项目中创建了一个分支master分支 我们就这样称呼它吧new feature 当我正在工作时new feature the master分支遵循其正常的演变 现在new feature已准备好合并到master我看到一些冲
  • 我可以通过 ssh 将 ssh 用户名与 git 的提交关联起来吗?

    我正在尝试通过 ssh 设置共享 git 存储库 将用户公钥复制到authorized keys 我真的希望 ssh key 中的 用户名 成为存储库中提交历史记录的一部分 这样用户 joe 就不能将他的名字设置为 kate 我们需要某种责
  • git svn - cygwin下的错误

    我有 cygwin 和 git 我正在尝试使用 git 提交到 svn git svn dcommit 但它失败并出现奇怪的错误 git svn dcommit 4 main perl 5536 C cygwin bin perl exe
  • 用于从两台机器进行开发的 Git 存储库设置?

    我刚刚开始使用 git 对与 SVN 的工作流程差异印象深刻 但我遇到了一个结构 设置问题 文档似乎没有直观地解释如何设置 我想知道是否这甚至是可能的 我的设置是 我有几台计算机 台式机和笔记本电脑 进行开发 因此 为了更轻松地保持同步并为
  • 将文件恢复到以前的版本后 git diff 显示没有差异?

    After 将文件恢复到以前的版本 https stackoverflow com questions 215718 reset or revert a specific file to a specific revision using
  • 构建、部署、配置和回滚所需的 Jenkins 指南,保留 5 个版本

    我对詹金斯很陌生 有一定的了解 但需要进一步的指导 我在 Git 存储库上有一个 PHP 应用程序 它使用 Composer 具有资产 具有用户上传的媒体文件 使用 Memcache Redis 具有一些代理 工作人员 并且具有迁移文件 到
  • 具有共享代码库的多个产品的版本控制和发布管理

    我目前正在尝试弄清楚 在这样一种情况下 如何使用 git flow 进行发布管理 我有一个 git 存储库 其中包含两个解决方案中的大约 15 个项目以及数据库脚本 每个解决方案基本上都包含一个将生成可执行文件的项目和 10 多个包含两个解

随机推荐

  • 如何在值为 std::set (从某物映射到集合)的 std::map 中使用 emplace() ?

    问题 我有一个std map
  • 如何检查 Windows 文件索引是否打开或关闭

    C 中是否有一个 API 可用于检查文件索引是否打开或关闭 代码受到赞赏 WMI 在 C 中是一个痛苦 但本机服务 API 非常干净 SC HANDLE hSCManager OpenSCManager NULL NULL SC MANAG
  • 如何在 m1 Mac 上安装 pandas

    clang Wno unused result Wsign compare Wunreachable code fno common dynamic DNDEBUG g fwrapv O3 Wall iwithsysroot System
  • xslt-1.0 迭代固定值列表

    我需要根据输入生成固定数量语言的 XML 结构 该输入可能包含也可能不包含每种语言的信息 如果信息丢失 我需要生成空元素 问题是 我需要在输出结构中的许多地方迭代语言 最简单的方法是使用类似的东西
  • SQL CASE 语句

    我有以下查询 我想将它们放入 sql CASE 语句中 这样我只有一个查询 但我不知道该怎么做 有人可以帮助我吗 IF SELECT EtlLoadId FROM ssislogs audit processcontrol WHERE Su
  • 如何用mockito模拟最后一堂课

    我有最后一堂课 是这样的 public final class RainOnTrees public void startRain some code here 我在其他类中使用这个类 如下所示 public class Seasons R
  • WordPress 固定链接永远不会在本地主机 Ubuntu 12.10 上工作

    除默认设置外 Wordpress 永久链接不起作用 如何启用此重写 我试过了 sudo a2enmod rewrite sudo service apache2 restart 永久链接保存到 localhost wordpress 中的
  • Alembic - sqlalchemy 初始迁移

    我在创建初始迁移时遇到问题 该迁移将自动包含我通过使用共享 Base declarative base 在 models py 中定义的表 当我输入命令时 alembic revision autogenerate alembic 创建一个
  • 删除字段后重置 JavaScript 计数器

    我有一个 javascript 函数 可以添加带有计数器的输入字段 现在 当我删除其中一个字段时 它会被删除 但计数器仍在继续 JS 或 JQuery 有没有办法重置计数器并自动递增计数器 JS code function var scnt
  • Android Studio 中显示的 Android 设备列表卡住了

    卡在 Android Studio 中加载设备中 在 Stack Overflow 中发现以下问题但没有帮助 Android Studio 设备列表加载时卡住 https stackoverflow com q 51101178 11630
  • 如何根据路径/URL 选择图像?

    我想根据图片的 URL 来选择图片 但由于某种原因 它没有发挥作用 最终我追求的是这样的东西 var imgs img src images object png not hidden 但即使是简单的事情 比如 img src images
  • 如何在react中导出csv对象

    我试图弄清楚是否有任何方法可以使用 React 在我的网页上单击 导出 按钮来下载 csv 文件 这是我现在在组件下的内容 div div
  • 有效存储和查询 GPS 坐标

    我想创建一个大型 GPS 坐标数据库 可以通过 返回 此坐标 n 米范围内的所有坐标 来查询该数据库 我需要它尽可能高效 因此循环遍历数据库中的所有坐标并计算坐标是否在 n 米内并不是理想的解决方案 有更简单的解决方案吗 Thanks 我通
  • 电子商务网站的货币换算 - 防止因四舍五入而出现错误的总购物车

    我正在向电子商务应用程序添加多货币支持 我解决这个问题的方法是让应用程序保持其基础货币 并让模板在显示价格时调用 PriceDisplay 函数 插件 因此 模板继续接收以美元金额表示的价格 如果需要 priceDisplay 函数会正确转
  • 在 Android Webview 上选择文本转速度的语言

    我已经搜索了很多小时但没有真正的答案 是否可以为文本转语音功能选择与默认语言不同的语言 此代码在 PC 上的 chrome 上完美运行 但在 Android 浏览器上不起作用 function if speechSynthesis in w
  • 如何禁用滚轮事件 QGraphicsView Qt C++ 上的滚动功能

    我有一个图形视图 并且我设置了自己的功能 以便在用户按下 Control 并单击鼠标时手动拖动滚动 我已经删除了滚动条 但鼠标滚轮仍然会滚动 甚至滚动到显示在图像中的图像qGraphicsView显示我的手拖动没有的空白 白色 空间 我怎样
  • Android如何将int转换为String? [复制]

    这个问题在这里已经有答案了 我有一个 int 我想将其转换为字符串 应该很简单吧 但当我这样做时 编译器抱怨它找不到该符号 int tmpInt 10 String tmpStr10 String valueOf tmpInt 以上有什么问
  • DB_DEBUG 设置为 FALSE 的数据库连接设置

    我正在尝试连接到我的数据库 但收到以下消息 无法使用提供的设置连接到数据库服务器 文件名 core Loader php 线路号码 346 所以在阅读了很多之后 我发现在数据库连接中将 db default db debug 设置为 FAL
  • 覆盖生产环境中的后端资产

    我正在开发一个需要稍微改变 Refinery 的 WYMEditor 行为的项目 这可以通过重写轻松完成jquery refinery wymeditor js using rake refinery override并根据我自己的需要进行
  • 是否可以在 Git 项目的所有分支中执行“grep 搜索”?

    是否可以运行git grep在 Git 控件源项目的所有分支中 或者还有其他命令要运行吗 问题 如何在 Git 历史记录中 grep 搜索 提交的代码 https stackoverflow com q 2928584 6309 建议 gi