如何通过commit sha删除存储

时间:2016-09-09 23:47:03

标签: git git-stash

是否可以通过其提交sha删除存储,而不是使用

删除索引
git stash drop stash@{index}

1 个答案:

答案 0 :(得分:2)

不直接,不。您必须将散列转换为其对应的reflog条目,并通过reflog-entry-name删除它。

使用git reflog stash或其等价物(但更具可塑性)git log -g stash来查找存储日志,以查找ID提交。考虑如果它不存在该怎么办(也许存储已被丢弃),和/或如果它不止一次发生该怎么办(这应该永远不会发生在正常的操作中,但没有什么从根本上阻止藏匿reflog从列出相同的提交哈希几次)。

git log -g --format='%H %gd' stash | \
    awk -v h=$hash '$1 == h { print $2 }'

将为每个匹配的哈希打印一行(假设$hash设置为完整的40个字符哈希)。