只删除 git 中最后一次储藏的提交

4

当我有多个存储库时,有时在最后一个之前需要删除其中一个或两个:

> git stash
stash@{0}: WIP on 0.9.1: e59f763 UPDATE deploy script UPDATE requirements
stash@{1}: WIP on dev: c9f86fb ADD index view ADD return view ADD welcome

在这种情况下,我希望删除@{0}。如果我执行git stash pop,我就会遇到合并冲突,需要手动解决,可能不止一次,才能摆脱存储的提交。
通常情况下,我会创建另一个分支:
git checkout -b temp  
git stash pop
# solve merge-conflicts
git checkout branch_for_stash@{1}
git stash pop

有没有任何(git)命令可以删除最后或任何存储的提交?

2
git stash drop? - Syntax Error
it is exactly that one - Evhz
很酷,很高兴它起作用了。 - Syntax Error
1个回答

12

看起来评论区已经回答了这个问题。供日后参考,以下是关于git stash drop的相应文档:

从存储项列表中删除单个储藏项。当未指定<stash>时,它将删除最新的存储项,即stash@{0},否则<stash>必须是形式为stash@{<revision>}的有效储藏记录引用。

因此,要仅删除储藏项stash@{1},命令如下:

$ git stash drop stash@{1}

请注意,参考中的数字是从列表顶部开始计数的,因此连续两次弹出 stash@{1} 将删除 stash@{1} ,并且之前的 stash@{2} 将变成新的 stash@{1}

对于 git stash applygit stash pop 命令同样适用:

$ git stash apply stash@{1}
$ git stash pop stash@{1}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接