如何扫描Git提交查找添加isHidden的记录,排查生产崩溃问题
用Git快速定位代码中特定字符串的提交记录
嘿,刚好之前处理过类似的问题,Git本身就自带强大的文本变更搜索能力,完全能满足你的需求,不用额外工具也能高效搞定!下面分两种场景给你具体的命令和说明:
一、扫描上一版本的所有提交,找出添加isHidden的记录
假设你的上一版本发布分支是release/vX.X(或者有对应的tag比如vX.X),你可以用Git的pickaxe搜索(也就是-S参数)来精准定位那些在提交中新增或移除了isHidden字符串的记录:
1. 如果知道上一版本的开发范围(比如从主分支切到发布分支的提交)
git log -S"isHidden" --oneline main..release/vX.X
这个命令会对比main分支和release/vX.X分支的差异,只列出那些在代码变更中引入或删除了isHidden的提交,--oneline让输出更简洁(只显示提交hash前缀和提交信息)。
2. 如果知道上一版本的起始提交或tag
比如上一版本的起始提交是abc123,发布分支的最终提交是def456,或者用tag范围:
git log -S"isHidden" --oneline abc123..def456 # 或者用tag:git log -S"isHidden" --oneline vX.X-prev..vX.X
补充:查看提交的具体变更内容
找到可疑提交后,用下面的命令查看该提交里具体哪里添加了isHidden:
git show <提交hash>
二、扫描近一个月的Git提交,查看isHidden何时被添加
用--since参数指定时间范围,结合pickaxe搜索就能快速筛选:
git log -S"isHidden" --oneline --since="1 month ago"
这个命令会列出近一个月内所有修改过isHidden字符串的提交,同样,去掉--oneline加上-p可以直接查看每个提交的diff详情:
git log -S"isHidden" -p --since="1 month ago"
这样你能直接在日志里看到每个提交中isHidden是被添加到了哪个文件、哪一行,不用再单独执行git show。
为什么用Git的-S而不是全局搜索代码?
全局搜索当前代码库的isHidden会返回大量结果,但-S参数是针对提交的变更内容进行搜索,只找出那些在提交中新增或删除该字符串的记录,精准度更高,能直接定位到问题引入的提交,而不是所有包含该字符串的代码行。
内容的提问来源于stack exchange,提问作者Lizza
相关产品推荐
相关产品推荐

