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