我有一個包含某個檔案的倉庫。我需要創建一個 git 腳本來搜索該檔案的所有先前版本并列出包含特定字串的提交 SHA。我想要一個包含在其版本中該字串存在的所有提交的串列。
我能找到的最佳答案在這里(但還不夠好):https : //stackoverflow.com/a/4705617/4441211 這個解決方案不夠好,因為這只能找到有變化的地方(即添加了搜索詞或洗掉)。有沒有人有更好的想法如何做到這一點?
uj5u.com熱心網友回復:
要在提交<pattern>中的檔案中查找模式:使用<path/to/file><commit>git grep
git grep -e <pattern> <commit> -- <path/to/file>
檢查git help grep更多詳細資訊:許多選項都復制了原始grep命令(-l僅列出檔案名,-q洗掉輸出...)
如果您打算掃描所有提交以查找字串(不僅僅是發生更改的提交):
git rev-list HEAD將為您提供活動分支的祖先中所有提交的串列,- 撰寫一個回圈來重復呼叫
git grep這些提交。
例如 :
git rev-list HEAD | while read sha; do
git grep -q -e <pattern> $sha -- <path/to/file> && echo $sha
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/313234.html
上一篇:獲取GIT預告片值并保存為變數?
