git搜索--grep

摘要:
1.查找关键字(如函数名):$gitgrepxmmapconfig。c: contents=xmmap(NULL,contents_sz,PROT_READ,diff.c:s-˃data=xmap(NULL、s-˃size,PROT_READ,MAP_PRIVATE,fd,0);gitcompat-util.h:externvoid*xmmap(void*start,size_tlengt

1. 查找某个关键字(比如函数名):

$ git grepxmmap


config.c:               contents =xmmap(NULL, contents_sz, PROT_READ,
diff.c:                 s->data = xmmap(NULL, s->size, PROT_READ, MAP_PRIVATE, fd, 0);
git-compat-util.h:     extern void *xmmap(void *start, size_t length, int prot, intfla
read-cache.c:         mmap = xmmap(NULL, mmap_size, PROT_READ |PROT_WRITE, MAP_PRIVATE,
refs.c:                 log_mapped = xmmap(NULL, mapsz, PROT_READ, MAP_PRIVATE, logfd, 0);
sha1_file.c:             map = xmmap(NULL, mapsz, PROT_READ, MAP_PRIVATE, fd, 0);
sha1_file.c:               idx_map = xmmap(NULL, idx_size, PROT_READ, MAP_PRIVATE, fd, 0);
sha1_file.c:                    win->base = xmmap(NULL, win->len,
sha1_file.c:                    map = xmmap(NULL, *size, PROT_READ, MAP_PRIVATE, f
sha1_file.c:            buf = xmmap(NULL, size, PROT_READ, MAP_PRIVATE, fd, 0);
wrapper.c:             void *xmmap(void *start, size_t length,

1.1 如果要显示行号,添加‘-n’选项:

$ git grep -n xmmap



config.c:1016:          contents =xmmap(NULL, contents_sz, PROT_READ,
diff.c:1833:                 s->data = xmmap(NULL, s->size, PROT_READ, MAP_PRIVATE, fd,
git-compat-util.h:291:     extern void *xmmap(void *start, size_t length, int prot, intread-cache.c:1178:      mmap = xmmap(NULL, mmap_size, PROT_READ |PROT_WRITE, MAP_
refs.c:1345:          log_mapped = xmmap(NULL, mapsz, PROT_READ, MAP_PRIVATE, logfd, 0);
sha1_file.c:377:        map = xmmap(NULL, mapsz, PROT_READ, MAP_PRIVATE, fd, 0);
sha1_file.c:479:        idx_map =xmmap(NULL, idx_size, PROT_READ, MAP_PRIVATE, fd
sha1_file.c:780:                        win->base = xmmap(NULL, win->len,
sha1_file.c:1076:                       map = xmmap(NULL, *size, PROT_READ, MAP_PR
sha1_file.c:2393:               buf =xmmap(NULL, size, PROT_READ, MAP_PRIVATE, fd
wrapper.c:89:           void *xmmap(void *start, size_t length,

1.2 如果只显示文件名,添加‘--name-only’选项:

$ git grep --name-only xmmap



config.c
diff.c
git-compat-util.h
read-cache.c
refs.c
sha1_file.c
wrapper.c

1.3 统计每个文件里有多少行匹配内容,添加‘-c’选项:

$ git grep -c xmmap


config.c:1
diff.c:1git-compat-util.h:1read-cache.c:1refs.c:1sha1_file.c:5wrapper.c:1

1.4 查找git仓库里某个特定版本里的内容,添加tag名或sha号:

$ git grep xmmap v1.5.0

v1.5.0:config.c:                contents =xmmap(NULL, st.st_size, PROT_READ,
v1.5.0:diff.c:          s->data = xmmap(NULL, s->size, PROT_READ, MAP_PRIVATE, fd,
v1.5.0:git-compat-util.h:static inline void *xmmap(void *start, size_t length,
v1.5.0:read-cache.c:                    cache_mmap =xmmap(NULL, cache_mmap_size, 
v1.5.0:refs.c:  log_mapped =xmmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, logfd
v1.5.0:sha1_file.c:     map =xmmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 
v1.5.0:sha1_file.c:     idx_map =xmmap(NULL, idx_size, PROT_READ, MAP_PRIVATE, fd
v1.5.0:sha1_file.c:                     win->base = xmmap(NULL, win->len,
v1.5.0:sha1_file.c:     map =xmmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 
v1.5.0:sha1_file.c:             buf = xmmap(NULL, size, PROT_READ, MAP_PRIVATE, fd

1.5 查找git仓库里某个特定版本、特定文件里的内容(省略版本,默认当前版本),添加tag名或sha号、文件名:

$ git grep xmmap v1.5.0 diff.c


v1.5.0:diff.c:          s->data = xmmap(NULL, s->size, PROT_READ, MAP_PRIVATE, fd,

2. 某些关键字逻辑组合

2.1 逻辑:某一行既包括...又包括...

------------------->$ git grep -e 'pu' --and -e 'lic'a.txt:public
c.txt:public
c.txt:public

2.2 逻辑:某一行包括...或者包括...

------------------->$ git grep -e 'public' --or -e 'void'a.txt:public
a.txt:void
b.txt:void
c.txt:public
c.txt:public

--or 是默认行为,如果省略:

------------------->$ git grep -e 'public' --or -e 'void'a.txt:public
a.txt:void
b.txt:void
c.txt:public
c.txt:public

------------------->$ git grep -e 'public' -e 'void'a.txt:public
a.txt:void
b.txt:void
c.txt:public
c.txt:public

2.3 逻辑:某一行不包括...

------------------->$ git grep --not -e 'public'a.txt:ab
a.txt:bc
a.txt:void
b.txt:void
b.txt:aaa
b.txt:bbb
c.txt:kkkk
c.txt:sfs
c.txt:l

2.4 组合逻辑:与或非的组合(为测试组合逻辑,又在库中新添加了d.txt文件)

------------------->$ git grep -e 'public' --and ( -e 'void' -e 'return')
d.txt:public void intsave
d.txt:public void stringsave
d.txt:public return a

------------------->$ git grep -e 'public' --and ( -e 'void' --or -e 'return')
d.txt:public void intsave
d.txt:public void stringsave
d.txt:public return a

------------------->$ git grep -e 'public' --and ( -e 'void' --and -e 'int')
d.txt:public void intsave

------------------->$ git grep -e 'public' --and ( --not -e 'int')
a.txt:public
c.txt:public
c.txt:public
d.txt:public void stringsave
d.txt:public return a

2.5 全匹配:某一文件既包含...又包含...

------------------->$ git grep --all-match -e 'public' -e 'void'a.txt:public
a.txt:void
d.txt:public void intsave
d.txt:public void stringsave
d.txt:public return a

2.6 以上各个命令还可以加‘-n'、’-c‘、’--name-only‘、版本、文件等限制

2.7查找某个字符串在何时添加

git log -S"string wanted to search" --oneline 
81fbf7e a commit

免责声明:文章转载自《git搜索--grep》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java守护线程mongodb 索引的基本命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux下使用find xargs grep查找文件及文件内容

1,在某个路径下查文件。 在/etc下查找“*.log”的文件 find /etc -name “*.log” 2,扩展,列出某个路径下所有文件,包括子目录。 find /etc -name “*” 3,在某个路径下查找所有包含“hello abcserver”字符串的文件。 find /etc -name “*” | xargs grep “...

GitLab搭建详细过程

一、前提 系统:Centos 6.5 软件版本:gitlab-7.8.4 Selinux:关闭 防火墙规则:先清空(搭建好了后续自己添加相关放行规则) 二、yum源配置和相关依赖包 1.添加epel源和PUIAS_6_computational源 1 # yum -y install epel-release 创建该文件并添加以下内容: 1...

【转】如何使用Git上传本地项目到github?(mac版)

原文链接:http://www.cnblogs.com/lijiayi/p/pushtogithub.html 在此假设你已经在 github 上创建好了一个项目,像这样: 并且你已经完成了自己的项目代码, 同时你也已经安装了 git,然后 let's start. 首先,建一个文件夹比如文中演示的是 微信小程序 文件夹,然后打开的你的终端,定位到该文件...

git的一套全流程上手(不包括报错(我忘了有哪些报错了)以及其解决方案(篇幅问题))

git|Github|Gitee|远程仓库 的基本使用 本篇主要说几个git的场景,单纯是为了让新手能够快速上手(因为我就是新手,我给我自己写了一篇教学用的文章,没毛病) 注: 这里不会去写git能够协同工作的原理(因为我自己还没搞明白,未来我是要去重写git,并改写很多功能的(实际上已经在写了)) 我不会贴效果图,很麻烦,而且我也贴不好。贴好了事半功倍...

jenkins二

破解管理员密码 1.假如我们忘记了Jenkins管理员密码了该怎么办呢?Jenkins没有用到数据库,所有的文件都是保存到xml文件里的 2.第一步找到admin所在的目录 [root@centos-03 ~]# cd /var/lib/jenkins/users/admin888/ [root@centos-03 admin888]# ll 总用量 4...

at_today git--一文弄懂git的工作区、索引区、本地仓库、远程仓库以及add、commit、push三个操作

git中文件所在位置有四个,在工作区内、在索引区内、在本地仓库、在远程仓库。处于四个位置中文件的状态分别为untracked、unmodified、modified、staged。通过三个操作可以把文件进行状态转移:git add 把工作区文件添加到索引区;git commit 把索引区文件添加到本地仓库;git push 把本地仓库文件添加到远程仓库。...