zoukankan      html  css  js  c++  java
  • 怎样快速找到某一行代码的git提交记录

    利用notepad++提高问题分析效率,以及快速找到某一行代码的git提交记录

    1. 全目录搜索/替换

            Notepad++是一款强大的文本编辑工具,当知道大概的关键词但不知道在哪个日志时可以使用notepad++的文件搜索功能,在整个目录及其子目录的文件中尝试搜索。

            如某客户机房出现FC网络不稳定,需要分析交换机日志排查出问题的端口;但是交换机是其他厂商的设备,日志解压后有上百个文件。我们并不清楚每个文件的内容,此时就可以利用文件搜索功能在整个目录下搜索link up,link down,connect,disconnect等疑似关键词,根据查找结果进一步分析。

             具体方法如下:点击“搜索>在文件中查找”,在弹出的对话框中填入关键词、搜索目录、文件类型*.*(全部文件类型),勾选当前文件夹、包含子目录,点击全部查找即可。

     

            2.多个关键词同时查找

            分析日志时通常需要搜索多个关键词,再在搜到的文本行前添加“///”等标识符将日志标记出来,标记完成后再搜索标识符列出问题相关日志进行分析。

            利用notepad++的正则表达式搜索功能可以同时搜索多个关键词,使用方法与上图相同,只需要在“查找模式”中勾选正则表达式,“查找目标”中填入要搜索的多个关键词“(keyword1)|(keyword2)”,点击搜索即可搜出文本中包含keyword1或者keyword2的文本行。

            示例文本及搜索结果如下所示: 

            正则表达式的进一步了解可参照:http://blog.jobbole.com/63398/

     

            3.notepad++配合git快速查找某处修改对应的提交记录

            开发过程中经常需要了解某个特定的变量历史上做了哪些改动,以及改动的原因、时间、修改人等信息。但是查看git log的最小粒度为文件,如果变量所在的文件的其他内容修改次数较多,就需要每次执行一条“git show <commit_id>”命令,再到命令结果输出中查看是否有我们关注的变量。利用notepad++配合git,即使有上千次提交也可以快速查找修改记录。

            示例如下:

            1.执行命令” git log <path/file>  >gitlogresult”将某个文件的commit log重定向到文件gitlogresult中; 

            2.利用正则表达式”^commit”搜索,过滤出以commit开头的包含commit id的行; 

            3.利用正则表达式进行替换,”()”表示捕获。

            将上图中的每一行分为三部分:第一部分 “commit ”,第二部分为commit id的前8个字符(.表示任意字符,{8}表示重复8次),第三部分为commit id的剩余部分(*表示任意个字符)。

             替换为“2”表示替换为第二次捕获,即commit id的前8个字符。

            替换结果为:

     

            4.再次利用正则表达式处理上图,将(.*)替换为echo "git show 1” >>borrowinglog git show 1 >>borrowinglog

            替换后的结果如下图所示:

     

             5.步骤4的处理结果中,每两行命令的含义分别为:将要执行的命令重定向到borrowinglog文件中和将命令的执行结果重定向到borrowinglog文件中。也就是说在borrowinglog文件中包含了所有执行的命令以及命令的执行结果,再利用多关键词匹配正则表达式”(git show)|(某行代码)”搜索就可以快速找到一行代码的修改历史及对应的commit log、修改人等信息。

  • 相关阅读:
    十步完全理解SQL
    c#退出应用程序办法
    几个有意思的算法题
    GeoServer不同服务器安装配置、数据发布及客户端访问
    开启httpd服务的时候 显示Could not reliably determine the server`s fully qualified domain name
    Working With OpenLayers(Section 1: Creating a Basic Map)
    GeoServer地图开发解决方案(五):基于Silverlight技术的地图客户端实现
    模拟远程HTTP的POST请求
    模拟提交带附件的表单
    支付宝手机网站接口对接
  • 原文地址:https://www.cnblogs.com/leituhaomo/p/9818811.html
Copyright © 2011-2022 走看看