问题描述
我有一个私人 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”
希望对你有所帮助。 ?