不是在Git存储库中,而是在GitHub中——我如何搜索特定存储库/分支的提交消息?


当前回答

这在Eclipse中工作得很好,直到GitHub添加了这个功能:

EGit/用户指南,搜索提交

其他回答

从搜索代码的帮助页面来看,这似乎还不可能。

您可以在存储库中搜索文本,包括选择要搜索的文件或路径的能力,但不能指定要在提交中搜索。

也许可以向他们提出这个建议?

这已从GitHub删除。我使用:

$git log --all --oneline | grep "search query"

你也可以通过作者筛选:

$git log --all --oneline --author=rickhanlonii | grep "search query"

您可以对谷歌爬取的存储库执行此操作(结果因存储库而异)。

搜索所有爬取存储库的所有分支,查找“更改许可”

“变更许可证”网站:https://github.com/*/*/commits

搜索所有爬虫库的主分支“change license”:

“变更许可证”网站:https://github.com/*/*/commits/master

搜索所有爬过的twitter存储库的主分支“更改许可证”

“变更许可证”网站:https://github.com/twitter/*/commits/master

搜索twitter/some_project存储库的所有分支,查找“change license”

“变更许可证”网站:https://github.com/twitter/some_project/commits

如果你有一个本地版本的存储库,你可能想尝试一下我写的这个粗糙的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。)

你过去可以这样做,但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.