git blame非常适合修改和添加的行,但是如何最终删除特定先前提交中存在的行.我在想,bisect但我希望有更方便的东西.
[在你问之前:在这种情况下,我只是做了一个git log -p并搜索了代码行和(a)一些白痴刚刚删除了前一次提交中的重要行和(b)我是那个白痴]
这是我过去30分钟的问题:我的一个文件中有一些更改消失了,我不知道发生了什么.我想知道是谁做的!
我开始寻找包含我的文件的修订版:
git grep <searched_string> $(git rev-list --all) -- <file>
Run Code Online (Sandbox Code Playgroud)
是文件的路径或*.gsp之类的通配符
我得到了一些修改,我看了最后一个,并尝试得到它的孩子(认为第一个孩子应该是我的变化消失的第一个修订)
git rev-list --children <revision_id>
Run Code Online (Sandbox Code Playgroud)
是从前一个命令的最后一行开始的40个字符
越来越接近!我正在查看输出的开头,然后选择第一个子项然后运行
git log <revision_id_s_first_child> --stat
Run Code Online (Sandbox Code Playgroud)
然后我查看输出并找到我的文件,谁做了更改!(原来,我应该责怪......)
反正有没有更快地做到这一点(git责备不会显示已删除的内容)?