git存储丢弃最旧的存储(假设最旧的5个存储)
如何在一条语句中删除最旧的存储(比如最旧的5个存储),而不是执行以下操作:git存储丢弃最旧的存储(假设最旧的5个存储),git,git-stash,Git,Git Stash,如何在一条语句中删除最旧的存储(比如最旧的5个存储),而不是执行以下操作: git stash drop stash@{3} git stash drop stash@{4} git stash drop stash@{5} git stash drop stash@{6} git stash drop stash@{7} git stash list | cut -f 1 -d : | tail -5 | sort -r | xargs -n 1 git stash drop 由于匿名用户
git stash drop stash@{3}
git stash drop stash@{4}
git stash drop stash@{5}
git stash drop stash@{6}
git stash drop stash@{7}
git stash list | cut -f 1 -d : | tail -5 | sort -r | xargs -n 1 git stash drop
由于匿名用户的编辑,正确的命令如下所示:
git stash drop stash@{3}
git stash drop stash@{4}
git stash drop stash@{5}
git stash drop stash@{6}
git stash drop stash@{7}
git stash list | cut -f 1 -d : | tail -5 | sort -r | xargs -n 1 git stash drop
以下是他/她的解释:
:列出所有藏品git藏品列表
:仅选择第一列(隐藏标识符,例如隐藏{29})cut-f1-d
:只保留最后五行tail-5
:颠倒行的顺序,首先删除最旧的存储(否则剩余的存储在每次删除后都会得到新名称)sort-r
:对于管道中传输的每一行,执行git stash drop,因为xargs-n 1 git stash drop
[可能]一次只支持一个stashgit stash drop
向这位神秘的陌生人致敬。公认的答案很好。如果您可能经常使用它,您可以将其添加到如下shell函数中,该函数将使用一个参数表示要删除的旧存储的数量:
git-stash-prune() {
git stash list | cut -f 1 -d : | tail -"$1" | sort -r | xargs -n 1 git stash drop
}
然后你可以这样称呼它,例如,删除最后10个隐藏
git-stash-prune 10
谢谢你的回答!一个建议:如果有9个以上的库存,可以使用
tac
而不是sort-r
来反转要处理的行。这对我帮助很大!!!谢谢@lacostenycoder!!我有200多个藏品,因为我喜欢做实验,但有些太老了,一年左右就无法保存…@softdev3015很高兴你发现这很有用。我还有很多,如果你觉得有用的话