大家好,今天给大家介绍一个隐藏的功能——搜索

我们在写代码的时候经常遇到的一种情况就是,我们想要知道某一个函数是怎么定义的,这样我们才能知道该如何调用它。如果代码少的话我们当然可以自己人肉查找,但是如果代码量很大的话,人肉查找显然就不行了。如果使用IDE的话,现在的IDE当中当然一般都继承了这个功能,如果你像我一样喜欢编辑器而不喜欢IDE的话,可能就会麻烦一点。

这个时候我们可以使用git grep命令帮助我们找到代码所在的位置。

代码搜索

比如现在我们在一个Python仓库当中,想要知道get_yaml_config这个函数究竟在哪里出现过,这样我们就可以找到它的定义和参数了。

这个时候我们可以在命令行执行:

git grep get_yaml_config

之后我们会进入一个vim界面,当中会展示出这个函数所有出现过的位置

很明显我们可以知道,其中有def出现的是函数定义的地方,那么我们只需要到这个文件当中去寻找这一行代码就可以了。

这个就是git grep的基础用法,你可能还是会说这依然很不方便啊,虽然帮助我们找到了具体的文件,但是如果这个文件非常大呢,我们不还是要一行一行代码地翻找吗?有没有办法把具体的位置也展示出来呢?

当然是有的,也很简单,我们只需要加上-n这个参数就行了。

git grep -n get_yaml_config

这下我们就发现把行号也带上了。

当然它的功能不止这些,有时候我们只是找到了具体的位置不顶用,我们还会想知道这个发生调用的函数是什么。这我们一样可以做到,也只需要加上一个-p参数就可以了。

看起来结果好像差不多,但是它把每一个调用位置所处的函数都展示出来了。

不仅如此,git grep还可以查找之前某一个版本的代码。如果我们使用IDE的查找工具的话,我们会需要先checkout到之前的版本,然后进行查找,而使用git grep则可以省略这个步骤。

使用的方法也非常简单,我们只需要在最后加上git commitid或者是tag号就可以了。

git grep -n -p get_yaml_config 9caf1ecda6

日志搜索

有时候我们不希望知道这个函数在哪里,而是希望知道它是什么时候加上去的,或者是什么时候产生了变更。这时候我们依然可以使用git,它不仅可以搜索代码还可以搜索日志

使用的方法也很简单,我们使用git log命令,通过加上参数-L以及:get_yaml_config:generate_create_sql.py。它表示的是搜索generate_create_sql.py这个文件下get_yaml_config这个函数的变更。

git log -L :get_yaml_config:generate_create_sql.py 

这样我们得到的结果会是:

它展示出了代码变更的时间,以及对应的commit,甚至还展示出了对应的具体代码以及修改人。可以说是非常非常清晰了,这非常方便我们划定清楚责任,是谁的锅git log看一下就知道了。

刚开始使用估计会不太适应,觉得要敲命令很麻烦,但是用多了之后会发现git查找的速度非常快,而且消耗的内存也少。像是IDE打开了的文件数量多了之后,想要进行查找非常慢,需要等很久,这个时候就可以试试使用git进行代替,体验真的不太一样,强烈推荐一下。

今天的文章就到这里,衷心祝愿大家每天都有所收获。如果还喜欢今天的内容的话,请来一个三连支持吧~(点赞、关注、转发

有了Git这个功能,再也不需要依赖IDE了!的更多相关文章

  1. Git是什么、Git的功能、为什么versioncontrol用Git、Git的常用命令、Git的优缺点

    Git是什么 git是目前世界上最先进的分布式版本控制系统(没有之一). Git是用于 Linux内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版 ...

  2. SVN和Git的功能和区别,尚学堂SVN和Git学习视频资料免费下载

    对于软件开发人员来说,版本控制系统再熟悉不过了,所谓版本控制系统就是软件项目开发过程中用于储存开发人员所写代码所有修订版本的软件.目前常见的版本控制系统分为集中式版本控制系统(SVN)和分布式版本控制 ...

  3. git stash功能的使用

    一,git stash的作用: 能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录 说明:架构森林是一个专注架构的博客,地址:https://www.cnblogs.com ...

  4. git: 常用功能等

    1. an very useful simple git guide link: http://rogerdudler.github.io/git-guide/index.zh.html

  5. 如何使用 Android Studio 的 git hub 功能

    How to use GitHub with Android Studio This article will explain how to use GitHub with Android Studi ...

  6. Git:常用功能 - 命令行

    1. 正在某个分支进行开发,突然有个紧急BUG需要切换到其他分支进行修复? git add README.md # 将文件添加到暂存区 git stash save "v1.0.0 in d ...

  7. Git常用功能记录

    1. git查看某个文件的修改历史 git log --pretty 然后使用下面的命令可列出文件的所有改动历史,注意,这里着眼于具体的一个文件,而不是git库,如果是库,那改动可多了去了- git ...

  8. git release功能

    命令行: git tag -a v3. -m "这是4.0版本" git push origin v3. //git tag -a 标签名称 -m "说明" / ...

  9. tortoise git常用功能

    1.打tag TortoiseGit -> show log -> 选中版本 -> create tag at this version... TortoiseGit -> p ...

随机推荐

  1. 深度分享:面试阿里,字节跳动,美团90%会被问到的HashMap知识

    一,HashTable 哈希表,它相比于hashMap结构简单点,它没有涉及红黑树,直接使用链表的方式解决哈希冲突. 我们看它的字段,和hashMap差不多,使用table存放元素 private t ...

  2. .NET 5 ORM 八大实用技巧 干货 - SqlSugar ORM

    介绍 sqlsugar已经在第一时间完美兼容.NET5并且已经有人在使用了, 很多人都担心用了开源框架遇到问题无法解决,导致前功尽弃,使用SqlSugar你大可放心,除了有详细文档和几年的大量用户积累 ...

  3. python中操作excel数据

    python操作excel,python有提供库 本文介绍openpyxl,他只支持新型的excell( xlsx)格式,读取速度还可以 1.安装 pip install openpyxl 2.使用 ...

  4. vulnhub: DC 4

    信息收集: yurang@kali:~$ nmap -sn 192.168.76.1/24 Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-04 ...

  5. 太干了!一张图整理了 Python 所有内置异常

    在编写程序时,可能会经常报出一些异常,很大一方面原因是自己的疏忽大意导致程序给出错误信息,另一方面是因为有些异常是程序运行时不可避免的,比如在爬虫时可能有几个网页的结构不一致,这时两种结构的网页用同一 ...

  6. 【scrum】scrum价值观

    1.每一位成员都承诺实现项目的目标 2.团队成员相互尊重 3.所有人都专注于工作 4.团队着重开放 5.团队成员有勇气全力支持项目

  7. dubbo起停之服务注解

    开始之前建议先去了解spring的BeanDefinition可以参考下这里:https://www.jianshu.com/p/56e42e82e9a0 当用户使用注解@DubboComponent ...

  8. LaTeX中的数学公式的初步使用

    数学公式初步使用代码及注释: 显示效果:

  9. 蒲公英 · JELLY技术周刊 Vol.32: 前端的自我进化之路

    蒲公英 · JELLY技术周刊 Vol.32 前端开发不过是切图仔在那儿瞎鼓捣,没啥门槛,不需要懂计算机原理,不需要懂算法,微服务.高并发这些都不需要懂,拖组件写个页面就好了,数据.逻辑.测试都可以交 ...

  10. 3D显微镜笔记

    1. 三视图:能够正确反映物体长.宽.高尺寸的正投影工程图(主视图,俯视图,左视图三个基本视图)为三视图,这是工程界一种对物体几何形状约定俗成的抽象表达方式. 附上自己大二时候设计的减速器--设计了两 ...