是否有一种简单的方法可以通过所有以前提交的git repo的所有代码进行搜索?



我有一个私有的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标识符是什么,其中包含您正在查找的单词。然后可能应用"reset—hard">

我希望我对你有所帮助。🙂

最新更新