万能的 V2EX ,想请教一个 git log 问题

2015-10-15 19:20:13 +08:00
 ferock

git blame sha1_file.c | grep "<正则>"

可以查询某个文件内容是谁添加的,这个超级棒
但是,如果某个文件的内容,某行在一次历史 commit 里被删除,那这个命令就查不到了。

我估计 git log 应该可以查询到那次 commit 的 sha1 ID ,但是找了一天的谷歌,没有学会,看了 git help 也苦于没看明白,所以在这里请教一下。
望知道的可以告知一下,谢谢了!

2975 次点击
所在节点    git
3 条回复
hantsy
2015-10-15 19:42:47 +08:00
git logref 可以查记录。可以用 git reset 到某个版本。

git checkout <revision> path 可以恢复某个你要的历史文件。
exch4nge
2015-10-16 09:03:59 +08:00
楼主要的是 git log -- path/to/the/file 么
ferock
2015-10-16 12:36:10 +08:00
谢谢大家热心回答, git logref 好像你打错了。
git log <path> 这个可以看到每次 commit ,而实际我用了 git log -p <path> 可以看到差异,只是,我希望的是:

找出某个文件某一行代码的删除记录
尝试过
git log -p <path> | grep "正则"
能找到那行代码,但是却丢失了 sha1 ID ,让人很纠结。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/228347

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX