我定期在git中存放变化,并建立了相当长的藏品清单(顺便说一句,还有“胡子”,巧合的是)。我目前的回购产品有68个藏品。有什么办法可以通过清除除N个最近的藏品之外的所有物品来清除库存清单呢?
我已经研究过的选项:
git stash clear -移除整个存储列表
git stash drop <stash>-移除特定的<stash>
第一个选项将删除整个存储列表,后者将需要几十个命令。我正在寻找一些类似于git rebase -i HEAD~N工作原理的东西,其中一个数字可以提供给命令。
发布于 2016-11-30 22:31:52
使用一个小的外壳循环。请注意,当您丢弃N‘the存储时,随后的所有存储都会被重新编号;而当没有N’the存储时,git stash drop stash@{N}会失败(喧闹,什么也不做)。因此,您只需使用:
while git stash drop stash@{30}; do done它在循环中什么也不做,依赖于退出循环的失败。(显然,用N的期望值替换30。)
编辑:bash要求循环中至少有一个命令:
while git stash drop stash@{30}; do :; done它使用内置的“不做任何事情”:命令,因此看起来有点奇怪。如果您愿意的话,内置的true命令也能工作:
while git stash drop stash@{30}; do true; done(内置false命令也能工作,但返回一个失败的退出代码,因此不适合于可能设置了-e的脚本。)
发布于 2016-12-07 10:22:01
我创建了一个简单的npm包,用于将git存储量裁剪到指定的数字。一旦安装了一个简单的git-trim-stash 10,就可以将git的存储量减少到最近的10个。
该包非常轻量级,并且没有任何依赖项。
更多关于npm场址的信息。
https://stackoverflow.com/questions/40899204
复制相似问题