检查提交是否是存储条目

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

我需要在我的脚本中知道给定的提交是标准提交还是存储条目。 该方法也应该适用于尚未垃圾收集的已删除存储,因此它不能依赖于检查现有存储条目的 sha(如

git rev-parse stash@{X}
)。

git git-stash git-plumbing
1个回答
0
投票

一个隐藏提交有 2 个父项。说

parent1
parent2
parent1
也是
parent2
的唯一父级。图表是这样的

*   9129d71 WIP on master: d2b25fd hello world
|\
| * f38c1f8 index on master: d2b25fd hello world
|/
* d2b25fd hello world

它们的提交消息符合一定的模式。存储条目的消息以

WIP on $branch:
(由
git stash
)或
On $branch:
(由
git stash push -m $msg
)开头,后跟简短的 sha1sum 和
parent1
的主题。
parent2
的消息以
index on $branch:
开头,后面是简短的sha1sum和
parent1
的主题。

我们可以在普通分支上使用相同的图和消息伪造 3 次提交,并且头部也可以被

git stash apply $commit
消耗。但在真实的日志中并不常见。因此,如果 3 个提交与图表匹配并且它们的提交消息与这些模式匹配。 3 的头部可以被视为一个隐藏条目。

© www.soinside.com 2019 - 2024. All rights reserved.