如何显示/记录来自标准输入的所有提交(并且仅那些提交)?

问题描述 投票:0回答:1

我有一个提交列表,我希望 git-log(1) 或 git-show(1) 显示所有提交。但 只有他们。也不是他们可以访问的提交。

git git-log git-show
1个回答
0
投票

git-log(1)

您需要

--stdin
,它可以让您提供选项并提交 标准以及您已经提供的。 记住 看来这应该是您提供的最后一个论点。

然后你需要

--no-walk
来阻止命令查找 祖先。

$ cat example.txt
HEAD
HEAD~2
HEAD~5
$ <example.txt git log --no-walk --stdin

示例应用

ref=commits
[ "$(git notes --ref="$ref" | head -1)" ] \
    && git notes --ref="$ref" list \
    | cut -d' ' -f 2 \
    | git log --no-walk --ignore-missing --stdin

git-show(1)

(感谢eftshift0

git-show(1) 可以让你显示提交和其他类型的对象 (示例应用程序从 Git Notes 中获取对象,并且 Notes 可以是 附着在任何物体上)。

$ cat example.txt
HEAD
HEAD~2
HEAD~5
<example.txt git show --stdin

示例应用程序:

ref=commits
[ "$(git notes --ref="$ref" | head -1)" ] \
    && git notes --ref="$ref" list \
    | cut -d' ' -f 2 \
    | git show --ignore-missing --stdin
© www.soinside.com 2019 - 2024. All rights reserved.