git - 如何删除 git stash 的范围?

标签 git git-stash

我想从 git stash list 中删除所有的 stash,除了最近的。

例如我想在单个 git 命令中删除存储 13:

stash@{0}: On master: Test related changes
stash@{1}: On master: Tets
stash@{2}: On master: Integrate bunyan logging and http2
stash@{3}: On master: Integrate bunyan logging and http2

我检查了这个答案https://stackoverflow.com/a/5737041/3878940 ,但它仅适用于删除单个存储。是否有任何 git 命令可以删除一系列 stashes?

最佳答案

如果你想删除存储 1 到 3,只需转到 shell 并键入以下命令:

for n in {1..3}
do
git stash drop stash@{1}   
done

输出

Dropped stash@{1} (79f369e9c4ce8348af8bd2da63f384cc7d02655e)
Dropped stash@{1} (744d2fc40e25f2db1bdc182d41f6eb9134957df4)
Dropped stash@{1} (7f9989207a675549866ab1fc7b15082eb4161e9f)

由于 git stash 使用堆栈结构,每次删除第 n 个索引时,堆栈索引都会减少 1。因此最终,您最终会删除 stashes 1 到 3。 所以,像这样你也可以删除一个长度为 n 的存储,就像这样迭代:

for n in {1..n}
do
git stash drop stash@{1}   
done

关于git - 如何删除 git stash 的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41855523/

相关文章:

git - 如果你不能提交到他们的分支,你怎么能将提交到另一个人的 github pull request 添加到你的 repo?

git - 使用 --amend 重写提交后 CodeCommit 失败

cvs - 相当于 CVS 中的 git stash?

git - 通过 git stash apply 覆盖

git - 如何 git stash pop 在当前分支上创建的最后一个存储?

android - 在版本控制中存储 Android eclipse 项目?

使用 SSH 的 Git 提交请求电子邮件

git diff-tree 显示删除但 git log 中没有删除

git - 是否可以从带有多个文件的 git stash 中删除单个文件(即一个文件的差异)

git stash -> 将 stash 的更改与当前更改 merge