Git 怎么查找一段代码在项目中其他的位置?

wowbeing · 2011年12月03日 · 最后由 liujinxia 回复于 2016年10月08日 · 7367 次阅读

比如我在这个页面:

https://github.com/huacnlee/ruby-china/blob/master/app/views/users/_info.html.erb

看到这样的代码“user_avatar_tag”

请问怎么查找在 ruby-china 这个项目中查找其他地方出现的“user_avatar_tag”呢?

TextMate 里面可以 Find in project 哈哈哈

Rubymine 里面也可以搜索得到

推荐用 ack

搜出一堆日志中的记录很不爽的

git grep 忽略不在版本控制中的文件 (如 log) 和 .git 目录中的文件 ackmate 可以用 ackrc 限制搜索的文件类型

单纯用 grep 就行了,vim 命令模式可以直接调用 grep

推荐使用 ack http://betterthangrep.com/,对于此类问题用起来比 grep 方便多了,另外,vim 也有调用 ack 的插件 https://github.com/mileszs/ack.vim

ack or grep 个人使用 ack,而且喜欢的不行....

BTW: #2 楼 @huacnlee 你居然还没被 Textmate Find in project 搞疯?快用这个 plugin 吧 :D https://github.com/protocool/ack-tmbundle

我的经历 grep => rak => grep => ack => ack => ack => ack => ack

~ $ which ggit
ggit () {
    grep $1 -rn . | grep -v git | less
}

#9 楼 @lgn21st 你让我想起了 还有 rak.... 记得咱们还用了不少日子呢...直到升级 1.9.2 对 rak 支持不好...

#1 楼 @night_song git grep keyword | ack keyword 这样就可以支持多条件过滤和高亮特定关键词了,哈哈

哇 回复了这么多有营养的内容 谢谢各位前辈~

我一般这样:

find app -name '*.*' | xargs grep 'user_avatar_tag'

使用第六感。。。

#16 楼 @bony 这得要人机合一的境界吧。

#16 楼 @bony 哈哈,我觉得吧,用第六感就能定位代码的,那是圣斗士 :-)

ack 也有点问题的,它默认不搜索 Gemfile 和 Gemfile.lock, 各种 sass, coffee 也不在搜索列表中,在 ~/.ackrc 里加上 --text 就可以了。

ack2 以后就默认带 --text 了。

rubymine find in path

木有人用 gedit 吗,装了 gmate 感觉也 满爽快的哦

@fresh_fish 我在用 sublime text 2 之前,一直用 gmate。。

@bony 看起来满不错哦,Ubuntu 下好用么?

@fresh_fish 中文支持不好。。和 textmate 一样,通病,Linux 下中文没法输入。

@bony 装上玩了一下,界面不错,但是无法显示和输入中文,为了中文继续 gedit

#26 楼 @bony 我也用 st2,可惜了无法输入中文,网上说是字体的原因,改了还是没用

@t_zires 字体只能让你不乱码。中文输入是输入法支持的问题。

rubymine ctrl+shift+f 😊 😊 😊

需要 登录 后方可回复, 如果你还没有账号请 注册新账号