我設法在 github 存盤庫中使用以下命令找到我想要的單詞
git log --all -p | grep 'abc'
abc是位于特定檔案中的單詞。
我的問題是如何找到我想要的字串的檔案路徑?我怎么知道哪個檔案包含我想要的單詞 which is abc?
例如,執行上述命令會讓我
(this.b(),this.abc);
但我想知道這段字串/代碼來自哪個確切的檔案夾和哪個確切的檔案。
任何建議表示贊賞。
uj5u.com熱心網友回復:
git grep -l 'abc'
在當前 ( ) 提交-l中找到模式的選項串列檔案名。HEAD
uj5u.com熱心網友回復:
趕緊跑
git log --all -p
這顯示了尋呼機中的輸出,通常是less. 您可以搜索、向前和向后滾動。
要搜索字串,請鍵入/ a b c Enter(abc這里是正則運算式,而不是文字字串)。鍵入n以查找下一個匹配項。找到一個后,您可以向后滾動b并查看補丁文本以查看它是哪個檔案。(順便說一句,鍵入 Space向前滾動;鍵入 q退出尋呼機。)
uj5u.com熱心網友回復:
以下(用 GNU 測驗awk)應該是您想要的近似值:
git log --all -p |
awk '/^diff --git / {files = $0}
/^@@ /,/^(commit |diff --git )/ {if(index($0, "abc")) print files}'
我們將該diff --git行存盤在變數中files。@@ 然后,如果在以 or 開頭的下一行和以commit or開頭的行之間找到您的字串diff --git ,則列印該files變數。
它只是一個近似值,因為 stringabc也可以在diff --gitorcommit行中找到,也因為^@@ , ^diff --git or^commit 可以在檔案內容中找到。
存在更準確的解決方案,但它們更復雜,我能想到的解決方案不可能 100% 完美。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/498419.html
