git stash drop oldest stashes(比如最旧的 5 个 stashes)
git stash drop oldest stashes ( say oldest 5 stashes)
如何在一个语句中删除最旧的存储(比如最旧的 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
这里是 his/her 解释:
git stash list
:列出你所有的藏品
cut -f 1 -d
: Select 仅第一列(存储标识符,例如 stash@{29})
tail -5
: 只保留最后五行
sort -r
:反转行的顺序以首先删除最旧的存储(否则剩余的存储在每次删除后获得新名称)
xargs -n 1 git stash drop
:对于管道中传输的每一行,执行git stash drop,因为git stash drop
[可能]一次只支持一个stash。
感谢这位神秘的陌生人。
接受的答案很棒。如果你经常使用它,你可以将它添加到一个 shell 函数中,它会接受你想要删除的旧存储数量的参数:
git-stash-prune() {
git stash list | cut -f 1 -d : | tail -"" | sort -r | xargs -n 1 git stash drop
}
然后你可以这样调用它,例如删除最后 10 个存储。
git-stash-prune 10
如何在一个语句中删除最旧的存储(比如最旧的 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
这里是 his/her 解释:
git stash list
:列出你所有的藏品cut -f 1 -d
: Select 仅第一列(存储标识符,例如 stash@{29})tail -5
: 只保留最后五行sort -r
:反转行的顺序以首先删除最旧的存储(否则剩余的存储在每次删除后获得新名称)xargs -n 1 git stash drop
:对于管道中传输的每一行,执行git stash drop,因为git stash drop
[可能]一次只支持一个stash。
感谢这位神秘的陌生人。
接受的答案很棒。如果你经常使用它,你可以将它添加到一个 shell 函数中,它会接受你想要删除的旧存储数量的参数:
git-stash-prune() {
git stash list | cut -f 1 -d : | tail -"" | sort -r | xargs -n 1 git stash drop
}
然后你可以这样调用它,例如删除最后 10 个存储。
git-stash-prune 10