我想从 git stash list
中删除所有的 stash,除了最近的。
例如我想在单个 git 命令中删除存储 1 到 3:
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 命令可以删除一系列 stash
es?
最佳答案
如果你想删除存储 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/