git grep简介

【Git “grep“ 命令详解】 git grep是 Git 提供的一个强大命令,类似于 UNIX/Linux 中的grep命令,但它专门用于在 Git 仓库的版本控制文件中进行搜索。与常规的grep命令不同,git grep只会搜索已经被 Git 跟踪的文件内容,并且能够根据提交历史搜索特定版本的内容。它通常用于查找代码中的某个特定字符串、变量、函数,或者某些改动的详细信息。git grep是一个非常高效且实用的 Git 命令,尤其适合开发者在代码中快速查找函数、变量或特定的改动。无论是在当前工作目录中,还是在某个历史提交中, 阅读详情


使用Git Grep进行搜索


用git grep 命令查找Git库里面的某段文字是很方便的. 当然, 你也可以用unix下的'grep'命令进行搜索, 但是'git grep'命令能让你不用签出(checkout)历史文件, 就能查找它们.


例如, 你要看 git.git 这个仓库里每个使用'xmmap'函数的地方, 你可以运行下面的命令:


$ git grep xmmap
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, int fla
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,
如果你要显示行号, 你可以添加'-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, int
read-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,
如果我们想只显示文件名, 我们可以使用'--name-onley'选项:


$>git grep --name-only xmmap
config.c
diff.c
git-compat-util.h
read-cache.c
refs.c
sha1_file.c
wrapper.c
我们可以用'-c'选项,可以查看每个文件里有多少行匹配内容(line matches):


$>git grep -c xmmap
config.c:1
diff.c:1
git-compat-util.h:1
read-cache.c:1
refs.c:1
sha1_file.c:5
wrapper.c:1
现在, 如果我们要查找git仓库里某个特定版本里的内容, 我们可以像下面一样在命令行末尾加上标签名(tag reference):


$ 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.0版"和当前版本间一些区别: 在“1.5.0版"中, xmmap没有在wrapper.c中出现.


我们也可以组合一些搜索条件, 下面的命令就是查找我们在仓库的哪个地方定义了'SORT_DIRENT'.


$ git grep -e '#define' --and -e SORT_DIRENT
builtin-fsck.c:#define SORT_DIRENT 0
builtin-fsck.c:#define SORT_DIRENT 1
我不但可以进行“与"(both)条件搜索操作,也可以进行"或"(either)条件搜索操作.


$ git grep --all-match -e '#define' -e SORT_DIRENT
builtin-fsck.c:#define REACHABLE 0x0001
builtin-fsck.c:#define SEEN      0x0002
builtin-fsck.c:#define ERROR_OBJECT 01
builtin-fsck.c:#define ERROR_REACHABLE 02
builtin-fsck.c:#define SORT_DIRENT 0
builtin-fsck.c:#define DIRENT_SORT_HINT(de) 0
builtin-fsck.c:#define SORT_DIRENT 1
builtin-fsck.c:#define DIRENT_SORT_HINT(de) ((de)->d_ino)
builtin-fsck.c:#define MAX_SHA1_ENTRIES (1024)
builtin-fsck.c: if (SORT_DIRENT)
我们也可以查找出符合一个条件(term)且符合两个条件(terms)之一的文件行. 例如我们要找出名字中含有‘PATH'或是'MAX'的常量定义:


$ git grep -e '#define' --and \( -e PATH -e MAX \) 
abspath.c:#define MAXDEPTH 5
builtin-blame.c:#define MORE_THAN_ONE_PATH      (1u<<13)
builtin-blame.c:#define MAXSG 16
builtin-describe.c:#define MAX_TAGS     (FLAG_BITS - 1)
builtin-fetch-pack.c:#define MAX_IN_VAIN 256
builtin-fsck.c:#define MAX_SHA1_ENTRIES (1024)
...
译者注: 就是"与"条件搜索和"或"条件搜索可以组合使用.


最大似然估计、梯度下降、EM算法、坐标上升 主要讲解的是机器学习中参数学习算法之间的区别,以及应用的场景。 最大似然估计: 其中目标函数是对数似然函数。为了求目标函数取最大值时的theta。有两个关机键步骤,第一个是对目标函数进行求导,第二个是另导数等于0,求解后直接得到最优theta。两个步骤缺一不可。 梯度下降: 对目标函数进行求导,利用导函数提供的梯度信息,使参数往梯度下降最快的方向移动一小步,来更新参数。为什 阅读详情

相关推荐

从零构建:openEuler WSL下的ARM交叉编译工具链自动化部署方案

本文详细介绍了在openEuler WSL环境下使用Ansible自动化部署ARM交叉编译工具链的方案。通过编写Ansible角色和Playbook,实现从基础环境配置到工具链安装、环境变量设置的一键部署,大幅提升嵌入式开发效率。方案支持多种ARM架构,并扩展了QEMU仿真、VS Code远程开发等实用功能,是嵌入式开发者的高效解决方案。

h3i4j的博客 382

git grep 全字匹配_git grep命令用法

通过git grep命令检索文件中的文本内容非常的便利。此命令参数众多,这里不一一介绍,只介绍最为常用的几种。更为详细的用法可以参阅官方文档,打开方式如下:[Shell] 纯文本查看 复制代码$ git grep --help下面通过代码实例介绍一下此命令常用的检索功能。当前项目下,有两文件,readme.txt和antzone.txt,内容分别是:[HTML] 纯文本查看 复制代码www.sof...

weixin_39859055的博客 4748

电路抗干扰原理及应用(1)

电路抗干扰原理——介绍干扰源、干扰途径、抗干扰技术(接地技术)

qq_34758408的博客 2060

10 个高级 Git 命令

usingxargs在这种情况下很有用,因为它获取命令的输出git rev-list,即 Git 存储库中所有修订的列表,并将每个修订作为参数传递给命令git grep,以便可以搜索每个修订的内容以查找指定的字符串。在提交或推送之前比较您在两个文件或分支之间所做的更改是有帮助的,因为它允许您查看您的更改并确保它们已准备好与他人共享。git grep是一个有用的工具,用于快速搜索 Git 存储库的代码库以查找特定信息搜索 Git 存储库当前分支中的跟踪文件并返回与指定模式匹配的行列表。

我的博客,不一样的自我表达 472

NX二次开发(python)-坯料尺寸(一)

一般在产品制造过程中,往往要判断一个模型在出模方向上的最小包容盒尺寸,在NX中可以用坯料尺寸命令实现,当然也有相应的代码实现,这或许可以帮助我们实现一些产品的坯料尺寸批量输出,节省人力。

dasfanfan的博客 816

FastDDS之共享内存

transport层负责为DDS用户数据收发和服务发现提供通信。包含UDP,TCP,SHM。

u010378559的博客 3085

Git第十讲 Git如何正确使用log快速查找内容/提交

Git第十讲 Git如何正确使用log快速查找内容/提交

程序员路同学 7195

IATF16949核心职位全解析

TM / Top MgmtMR / QMRProcess OwnerQMQAQCSQECQEPQEPETEMEIEPM / PJMFMEA ModeratorMSA CoordinatorSPC CoordinatorCM / CCB内审员CP / CPK

weixin_49938552的博客 972

Git系列:git grep 被忽视的操作细节

git grep是一个功能强大的搜索工具,它可以帮助开发者在Git仓库中快速定位代码。通过掌握其高级搜索技巧,你将能够更有效地进行代码搜索和理解项目的历史。记住,熟练使用git grep不仅能提高你的工作效率,还能帮助你更好地维护和理解代码。

专注于全栈开发领域 1247

Vivado FFT IP核配置与实战:FPGA信号处理硬件加速指南

快速傅里叶变换(FFT)是数字信号处理(DSP)中的核心算法,用于将时域信号转换到频域进行分析。其原理基于离散傅里叶变换(DFT),通过蝶形运算的分解与复用,大幅降低了计算复杂度。在工程实践中,软件实现的FFT难以满足高速实时处理的需求,因此硬件加速方案至关重要。FPGA凭借其并行架构和可定制性,成为实现高性能FFT的理想平台。通过集成专用的FFT IP核,如Vivado中的Pipelined Streaming I/O架构,可以构建流水线化的计算引擎,实现极低延迟和高吞吐量的连续数据流处理。这种硬件方案特

weixin_42536863的博客 646

保姆级教程:用Qlib和LightGBM从零搭建你的第一个AI量化选股策略(附完整代码)

本文提供了一份详细的教程,教你如何使用Qlib和LightGBM从零搭建AI量化选股策略。教程涵盖了环境配置、数据获取、特征工程、模型训练和策略回测等关键步骤,并附有完整代码和常见问题解决方案,适合量化投资初学者快速上手。

weixin_29191081的博客 445

git grep

git grep用于在 Git 仓库中搜索文本。它会自动忽略.gitignore中声明的文件(如.idea/),并针对 Git 仓库进行了性能优化。搜索某个函数、变量、类名在哪里被定义或调用查找特定错误信息或日志输出按文件类型、行号、上下文过滤搜索结果。

Doublelv 的博客专栏。 292

高德地图API如何使用

通过以上步骤,您可以成功接入并使用高德地图API来为您的应用添加丰富的地图功能。

QQ_778132974的博客 4783

git grep 全字匹配_git搜索--grep

1. 查找某个关键字(比如函数名):$ git grepxmmapconfig.c: contents=xmmap(NULL, contents_sz, PROT_READ,diff.c: s->data = xmmap(NULL, s->size, PROT_READ, MAP_PRIVATE, fd, 0);git-com...

weixin_39979489的博客 524

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

git grep 全字匹配_Git Book 中文版 - 使用Git Grep进行搜索

使用Git Grep进行搜索用git grep 命令查找Git库里面的某段文字是很方便的. 当然, 你也可以用unix下的'grep'命令进行搜索, 但是'git grep'命令能让你不用签出(checkout)历史文件, 就能查找它们.例如, 你要看 git.git 这个仓库里每个使用'xmmap'函数的地方, 你可以运行下面的命令:$ git grep xmmapconfig.c: ...

weixin_39760368的博客 299

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

git grep 全字匹配_linux-如果我们要搜索版本化的源代码,使用git grep比普通grep更好吗?...

linux-如果我们要搜索版本化的源代码,使用git grep比普通grep更好吗?在git存储库中,使用git grep与旧的grep有什么区别/好处?一个例子是?Jim asked 2020-07-24T13:55:13Z5个解决方案40 votes两者非常相似。 主要区别在于git grep默认为在git跟踪的文件中搜索。例子如果要在我的项目中找到gg,可以使用git grep -En或较好...

weixin_35067439的博客 336

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

git grep选项

help 的解释    git grep [-a | --text] [-I] [--textconv] [-i | --ignore-case] [-w | --word-regexp]                   [-v | --invert-match] [-h|-H] [--full-name]                   [-E | --extended-regex

点滴记录 不断进步 3733

Git grep vs 普通grep:为什么开发者更应该用git grep?

本文深入比较了Git grep与普通grep在代码搜索中的差异,重点分析了Git grep的版本控制感知能力、性能优化和开发者专属功能。通过实测数据和实用命令示例,展示了Git grep在大型代码仓库中的高效搜索优势,帮助开发者提升工作效率。

gpt4scribbler的博客 173

git版本控制实践——git grep

测试文档1.txt的文件内容如下: 一、在指定commit节点中的所有文件,列出包含指定字符串的每一行。 git grep '指定字符串' [commit节点] # 例: git grep '1' head 结果: ...

yjl2055的博客 390

(二)日常工作流 - git grep 命令的使用

git grep命令用于在一个 Git 仓库中搜索字符串模式。它与标准的grep只搜索被 Git 管理的文件:默认情况下,它只会在工作目录中已被跟踪的文件里搜索,忽略.gitignore中指定的文件以及未被git add的文件。高效:它可以利用 Git 的内部数据结构,在某些情况下(如搜索历史提交)比普通grep更快。能搜索任意提交:你不仅可以在当前工作区搜索,还可以在任何一个历史提交、分支或标签中搜索。与 Git 工作流无缝集成:它的输出可以轻松地与其他 Git 命令(如git log -S。

xiaohaha123258的博客 1178

grep、git、vim相关命令集合

grep的基本语法: 1.grep “xxxx” file_name 从指定文件中搜索特定的字符串 2.grep -i “string” file_name 忽略大小写在指定文件中搜索字符串 3.grep “REGEX” file_name 使用正则表达式 4.grep -w “string” file_name 搜索

qq_24614807的博客 653

git grep 全字匹配_git-grep

# git-grep> 原文: [https://git-scm.com/docs/git-grep](https://git-scm.com/docs/git-grep)## 名称git-grep - 打印与图案匹配的线条## 概要```git grep [-a | --text] [-I] [--textconv] [-i | --ignore-case] [-w | --word-re...

weixin_35915828的博客 949

vim中显示git grep内容

show git grep results in vim If you want to show a git grep results into vim tabs, here is how to do so: //-p to open tabs, -O to open in split windows, -n No swap file, use memory only, $ or

227

git grep 全字匹配_是否有可能在git项目的所有分支中执行'grep搜索'

git grep $(git rev-list --all)搜索所有提交,其中应包括所有分支。另一种形式是:git rev-list --all | (while read revision; dogit grep -F 'yourWord' $revisiondone)您可以在this article中找到更多示例:I tried the above on one project large ...

weixin_39755625的博客 521

Git grep搜索TensorFlow代码库中的关键字

在TensorFlow等大型深度学习框架中,通过git grep结合容器化环境快速定位API实现与调试问题。相比IDE搜索,它更轻快精准,能直接在指定版本源码中查找关键逻辑,尤其适合排查梯度追踪、变量监控等疑难问题,实现源码级debug。

weixin_36122351的博客 729

git grep 命令搜索关键词

git grep -n order ./app/models 在项目app/models文件下搜索order关键词 -n是标明行数

qwbtc的博客 6407
上一篇: git rebase简介
下一篇: git 使用
bamboolsu
博客等级 码龄22年 200粉丝 394原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值