git grep用法




如何grep Git提交某個單詞的差異或內容? (5)

vim-fugitive在Vim中用於這種檢查是多功能的。

使用:Ggrep來做到這一點。 欲了解更多信息,您可以安裝vim-fugitive,並通過:help Grep查找密碼。 這一集: exploring-the-history-of-a-git-repository會引導你去做所有的事情。

在Git代碼庫中,我想列出包含某個單詞的所有提交。 我試過這個

git log -p | grep --context=4 "word"

但它不一定會讓我回到文件名(除非它少於我搜索的詞的5行),我也試過了

git grep "word"

但它只給我現在的文件而不是歷史。

如何搜索整個歷史記錄,以便我可以跟踪特定單詞的變化? 我的意思是在我的代碼庫中搜索出現的單詞來追踪更改(在文件歷史記錄中搜索)。


git log的鎬會發現包含“word”與git log -Sword


另一種方法/語法是: git log -S "word"
像這樣,你可以搜索例如git log -S "with whitespaces and stuff @/#ü !"


在正則表達式上使用布爾連接器:

git log --grep '[0-9]*\|[a-z]*'

這個正則表達式在提交消息上搜索正則表達式[0-9] *或[az] *。


經過大量的實驗後,我可以推薦以下內容,它顯示了引入或刪除包含給定正則表達式的行的提交,並在每個文本中顯示文本更改,並顯示添加和刪除單詞的顏色。

git log --pickaxe-regex -p --color-words -S "<regexp to search for>"

需要一段時間才能運行... ;-)





grep