怎樣快速找到某一行代碼的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\ngit show \1 >>borrowinglog

        替換后的結果如下圖所示:

 

         5.步驟4的處理結果中,每兩行命令的含義分別為:將要執行的命令重定向到borrowinglog文件中和將命令的執行結果重定向到borrowinglog文件中。也就是說在borrowinglog文件中包含了所有執行的命令以及命令的執行結果,再利用多關鍵詞匹配正則表達式”(git show)|(某行代碼)”搜索就可以快速找到一行代碼的修改歷史及對應的commit log、修改人等信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM