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

8

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

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


3
可能是 Finding a Git commit that introduced a string in any branch 的重复问题。 - user6307369
2个回答

7
感谢ElpieKay提供这个小巧精致的宝石:
git grep a_string $(git rev-parse --all -- target_file)

1

使用:

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

来试试看。


虽然我能看出这样做是可行的,但感觉效率不高。有没有更好的方法?我希望能有一个命令行标志。 - Michael Arrison
1
@MichaelArrison 尝试执行 git grep a_string $(git rev-list --all -- target_file) - ElpieKay
很抱歉,那个不起作用。例如,我尝试了命令:"git grep opacity $(git rev-list --all -- css/main.css)",但返回的列表中包含了其他文件的匹配项。 - Michael Arrison
1
对不起,请使用 rev-parse 而不是 rev-list - ElpieKay
好多了。rev-parse 运行成功。随意将其作为答案,我会进行核对的。 - Michael Arrison
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接