簡體   English   中英

有沒有一種簡單的方法可以通過所有以前的提交來搜索 git repo 的所有代碼?

[英]Is there a simple way to search through all the code of a git repo through all previous commits?

我有一個私有的 git 存儲庫,其中有一個關鍵字,如abcde我之前在其中一個文件中寫下,這些文件今天可能仍在或可能不在該存儲庫中。 有沒有一種簡單的方法可以為我的關鍵字abcde搜索所有以前提交的所有文件?

我想我需要編寫一個腳本來搜索每個當前文件,但如果它不存在,只需啟動git reset --hard previousCommit直到它到達第一個提交。

您可能正在尋找

git log -G mykeyword 

使用單個 git log 命令,您可以搜索引入任何給定文本的提交。

您必須將兩行代碼迭代 N 次:
(例如,如果您有 N 次提交)

for VARIABLE in 1 .. N
do
  git checkout HEAD^
  grep keyword *
done

因此,在您的情況下,您可以將以下代碼復制並粘貼到 git bash 中:

for VARIABLE in 1 .. 2500
do
  git checkout HEAD^
  grep abcde *
done

當下一次提交不再顯示您要查找的內容時,迭代停止。
完成此操作后,您最終可以看到最舊提交的 SHA 標識符是您要查找的單詞。 然后可能應用“重置 --hard”

我希望我有所幫助。 🙂

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM