Git:查找已删除的代码
这使我疯狂。
我如何find被删除的代码?
我最终find了它创build的地方:
$ git log --pretty=oneline -S'some code'
这足够好,但我也很好奇,find删除的地方,到目前为止,没有骰子。
首先,我尝试了git diff HEAD..HEAD^|grep 'some code' ,每次扩展范围,直到find被删除的行。 不错,所以假设我发现它在范围HEAD^^..HEAD^^^ ,然后我做git show HEAD^^^和git show HEAD^^与grep ,但代码无处可寻!
然后,我读了一下git bisect ,果然,它给了我一个罪魁祸首应该是一个单一的版本…再次, git show rev|grep 'some code'出现空…
什么? 我究竟做错了什么?
谢谢!
哼,为我工作:
$ git init
在/Users/pknotz/foo/.git/中初始化了空的Git仓库
$ echo“Hello”> a
$ git添加一个
$ git commit -am“初始提交”
[master(root-commit)7e52a51]初始提交
1个文件已更改,1个插入(+),0个删除( - )
创build模式100644 a
$ echo“World”>> a
$ git commit -am“更具体”
[master 080e9fe]更具体
1个文件已更改,1个插入(+),0个删除( - )
$ echo“Hello”> a
$ git commit -am“不太具体”
[master 00f3fd0]不太具体
1个文件已更改,0个插入(+),1个删除( - )
$猫a
你好
$ git log -SWorld
提交00f3fd0134d0d54aafbb9d959666efc5fd492b4f
作者:Pat Notz <patnotz@gmail.com>
date:2009年10月6日星期二17:20:48
不太具体
提交080e9fe84ff89aab9d9d51fb5d8d59e8f663ee7f
作者:Pat Notz <patnotz@gmail.com>
date:2009年10月6日星期二17:20:33
更加详细一些
或者,这不是你的意思?
git log -S<string>做这个工作,但是如果你需要进行更复杂的search,你可以使用git log -G<regex> 。
从man :
-G<regex>查找补丁文本包含匹配
<regex>添加/删除行的差异。
如果你的仓库在github.com上,它有一个集成的function来search。 它以毫秒为单位进行响应,并在已删除的代码中进行search