微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有一种简单的方法可以通过所有以前的提交来搜索 git repo 的所有代码?

如何解决有没有一种简单的方法可以通过所有以前的提交来搜索 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 标识符是您要查找的单词。然后可能应用“重置 --hard”

希望对你有所帮助。 ?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。