根据git diff的内容 搜索提交: git log -Sxxx; git log -Gxxx

根据git diff的内容 搜索提交:

git log -Sxxx

git log -Gxxx

git log --help:
(节选)

       -S<string>
           Look for differences that change the number of occurrences of the specified string (i.e. addition/deletion) in a file. Intended for the scripter’s use.

           It is useful when you’re looking for an exact block of code (like a struct), and want to know the history of that block since it first came into being: use the feature iteratively to feed
           the interesting block in the preimage back into -S, and keep going until you get the very first version of the block.

       -G<regex>
           Look for differences whose patch text contains added/removed lines that match <regex>.

           To illustrate the difference between -S<regex> --pickaxe-regex and -G<regex>, consider a commit with the following diff in the same file:

               +    return !regexec(regexp, two->ptr, 1, &regmatch, 0);
               ...
               -    hit = !regexec(regexp, mf2.ptr, 1, &regmatch, 0);

           While git log -G"regexec\(regexp" will show this commit, git log -S"regexec\(regexp" --pickaxe-regex will not (because the number of occurrences of that string did not change).

           See the pickaxe entry in gitdiffcore(7) for more information.
发布了106 篇原创文章 · 获赞 30 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/dc3120/article/details/103977811