3 回答
TA贡献1780条经验 获得超5个赞
你可以做:
git log -S <whatever> --source --all
查找添加或删除固定字符串的 所有提交whatever。该--all参数意味着从每个分支开始,并且--source意味着显示哪些分支导致找到该提交。添加-p以显示每个提交也将引入的补丁通常很有用。
自1.7.4以来的git版本也有类似的-G选项,它采用正则表达式。这实际上有不同(而且更明显)的语义,在Junio Hamano的博客文章中有所解释。
正如thameera在评论中指出的那样,如果它包含空格或其他特殊字符,则需要在搜索词周围加上引号,例如:
git log -S 'hello world' --source --all
git log -S "dude, where's my car?" --source --all
这是一个-G用于查找出现次数的示例function foo() {:
git log -G "^(\s)*function foo[(][)](\s)*{$" --source --all
TA贡献1873条经验 获得超9个赞
--reverse也很有帮助,因为您需要进行更改的第一个提交:
git log --all -p --reverse --source -S 'needle'
这样,旧的提交将首先出现。
TA贡献1856条经验 获得超17个赞
用相同的答案搞清楚:
$ git config --global alias.find '!git log --color -p -S '
!因为其他方式,git不能正确地将参数传递给-S。看到这个回复
--color和-p有助于准确显示“whatchanged”
现在你可以做到
$ git find <whatever>
要么
$ git find <whatever> --all
$ git find <whatever> master develop
- 3 回答
- 0 关注
- 560 浏览
添加回答
举报