在所有分支的一个文件中搜索字符串

Posted

技术标签:

【中文标题】在所有分支的一个文件中搜索字符串【英文标题】:Search for string in one file in all branches 【发布时间】:2016-09-09 20:58:26 【问题描述】:

是否可以在所有分支一个文件中Git grep一个字符串?

我知道我对特定文件进行了更改;我只是找不到我在哪个分支上做的。

【问题讨论】:

Finding a Git commit that introduced a string in any branch的可能重复 【参考方案1】:

感谢 ElpieKay 提供这个漂亮的小宝石:

git grep a_string $(git rev-parse --all -- target_file)

【讨论】:

【参考方案2】:

用途:

git stash
git branch | while read line
do
echo branch:$line
git checkout $line -- target_file
grep a_string target_file
done
git stash pop

试一试。

【讨论】:

虽然我可以看到这个工作,但感觉效率低下。有人有更好的吗?我希望有一个命令行标志。 @MichaelArrison 尝试git grep a_string $(git rev-list --all -- target_file) @MichaelArrison git branch --merged blob_sha1 可以列出 blob_sha1 来自哪个分支。 恐怕这行不通。例如,我尝试了:“git grep opacity $(git rev-list --all -- css/main.css)”,并得到了一个包含其他文件匹配项的列表。 抱歉,请使用rev-parse 而不是rev-list

以上是关于在所有分支的一个文件中搜索字符串的主要内容,如果未能解决你的问题,请参考以下文章

windows10的文件浏览器中无法搜索文件内容

在 VS Code 中搜索所有*不*包含字符串的文件

如何在所有文件中搜索字符串 firefox developer 56

在所有 Git 历史记录中搜索字符串 [重复]

shell脚本:通过在文件夹中的所有文件中搜索来查找字符串? [复制]

在Android Studio中搜索整个项目中所有出现的字符串