首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >移除超过N的git藏物

移除超过N的git藏物
EN

Stack Overflow用户
提问于 2016-11-30 22:13:48
回答 2查看 323关注 0票数 4

我定期在git中存放变化,并建立了相当长的藏品清单(顺便说一句,还有“胡子”,巧合的是)。我目前的回购产品有68个藏品。有什么办法可以通过清除除N个最近的藏品之外的所有物品来清除库存清单呢?

我已经研究过的选项:

git stash clear -移除整个存储列表

git stash drop <stash>-移除特定的<stash>

第一个选项将删除整个存储列表,后者将需要几十个命令。我正在寻找一些类似于git rebase -i HEAD~N工作原理的东西,其中一个数字可以提供给命令。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-30 22:31:52

使用一个小的外壳循环。请注意,当您丢弃N‘the存储时,随后的所有存储都会被重新编号;而当没有N’the存储时,git stash drop stash@{N}会失败(喧闹,什么也不做)。因此,您只需使用:

代码语言:javascript
运行
复制
while git stash drop stash@{30}; do done

它在循环中什么也不做,依赖于退出循环的失败。(显然,用N的期望值替换30。)

编辑:bash要求循环中至少有一个命令:

代码语言:javascript
运行
复制
while git stash drop stash@{30}; do :; done

它使用内置的“不做任何事情”:命令,因此看起来有点奇怪。如果您愿意的话,内置的true命令也能工作:

代码语言:javascript
运行
复制
while git stash drop stash@{30}; do true; done

(内置false命令也能工作,但返回一个失败的退出代码,因此不适合于可能设置了-e的脚本。)

票数 4
EN

Stack Overflow用户

发布于 2016-12-07 10:22:01

我创建了一个简单的npm包,用于将git存储量裁剪到指定的数字。一旦安装了一个简单的git-trim-stash 10,就可以将git的存储量减少到最近的10个。

该包非常轻量级,并且没有任何依赖项。

更多关于npm场址的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40899204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档