不是在Git存储库中,而是在GitHub中——我如何搜索特定存储库/分支的提交消息?
当前回答
到2017年,GitHub本身就包含了这个功能。
他们使用的示例搜索是repo:torvalds/linux merge:false加密策略
GIF图片来自https://github.com/blog/2299-search-commit-messages
其他回答
从搜索代码的帮助页面来看,这似乎还不可能。
您可以在存储库中搜索文本,包括选择要搜索的文件或路径的能力,但不能指定要在提交中搜索。
也许可以向他们提出这个建议?
你过去可以这样做,但GitHub在2013年年中的某个时候删除了这个功能。要在本地实现这一点,您可以这样做:
git log -g --grep=STRING
(如果您想搜索其他分支和悬空提交,请使用-g标志。)
-g, --walk-reflogs
Instead of walking the commit ancestry chain, walk reflog entries from
the most recent one to older ones.
如果你有一个本地版本的存储库,你可能想尝试一下我写的这个粗糙的shell脚本,它可以在默认浏览器的新选项卡中打开与你的搜索词匹配的所有提交的GitHub页面:
#!/bin/sh
for sha1 in $(git rev-list HEAD -i --grep="$1"); do
python -mwebbrowser https://github.com/RepoOwnerUserName/RepoName/commit/$sha1 >/dev/null 2>/dev/null
done
只需将https://github.com/RepoOwnerUserName/RepoName/替换为你仓库的实际GitHub URL,将脚本保存在某个地方(例如githubsearch.sh,使其可执行(chmod +x githubsearch.sh),然后将以下别名添加到你的~/。bashrc文件:(
alias githubsearch='/path/to/githubsearch.sh'
然后,在Git存储库的任何地方,在终端上执行以下操作:
githubsearch "what you want to search for"
任何与你的搜索词(不区分大小写)匹配的提交都会在你的浏览器中打开相应的GitHub页面。(请注意,如果你的搜索词出现在数百次提交中,这可能会使你的浏览器崩溃,并在一段时间内吃掉你的电脑CPU。)
这在Eclipse中工作得很好,直到GitHub添加了这个功能:
EGit/用户指南,搜索提交
由于这已经从GitHub中删除,我一直在Linux上使用gitk来做这件事。
从终端转到存储库并键入gitk。
在GUI的中间,有一个搜索框。它提供了一个很好的过滤器:
范围包含,触摸路径,添加/删除字符串,改变行匹配
匹配类型—Exact/IgnCase/Regexp
搜索字段-所有字段/标题/评论/提交者
推荐文章
- 了解Git和GitHub的基础知识
- 在GitHub上有一个公共回购的私人分支?
- 只用GitHub动作在特定分支上运行作业
- Git合并与强制覆盖
- 是否有一个链接到GitHub下载文件的最新版本的存储库?
- 不区分大小写列表搜索
- GitHub -致命:无法读取用户名https://github.com':没有这样的文件或目录
- Github:我能看到回购的下载数量吗?
- 如何运行一个github-actions步骤,即使前一步失败,同时仍然失败的工作
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 在GitHub repo上显示Jenkins构建的当前状态
- 如何取消在github上的拉请求?
- HEAD和master的区别
- 在另一个目录中运行操作
- GitHub克隆与OAuth访问令牌