我有一个私有的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">