1

我之前一直在寻找这个,但我找不到它。使用:Ubuntu 11.10 64 位

我想找到一个前一段时间制作的源文件,但找不到。所以我用 git grep 找到它:

git rev-list --all | (
    while read revision; do
        git grep -F 'leaderboard' $revision
    done
)

但结果是一个空洞的回应!这真的很奇怪,因为“排行榜”实际上是在存储库中,它在当前版本中,但也在旧版本中(在 XML 文件中):

<query name="leaderboard.getById">

其他搜索会给出结果,例如消息或某些东西会起作用。

4

2 回答 2

1

您的语法会导致 shell 中的重定向不明确。这应该适合你:

git grep -F 'leaderboard' $(git rev-list --all)
于 2012-06-10T18:50:23.660 回答
0

注意:即使使用正确的 shell 语法,答案仍然可能是空的……当索引损坏时。

Git 2.18(2018 年第二季度,6 年后)现在避免了空洞的答案。

" " 无法读取索引时的错误行为git grep与其他使用该索引的命令不一致,已更正为提前报错。

请参阅Stefan Beller ( ) 的提交 b2aa84c(2018 年 5 月 15 日(由Junio C Hamano 合并 -- --6ac5aca 提交中,2018 年 5 月 30 日)stefanbeller
gitster

grep: 尽早处理损坏的索引文件

' 的任何其他调用者都会'repo_read_index在它的负返回时死亡,所以 grep 也应该如此。

于 2018-06-03T23:01:04.697 回答