我定期在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
复制相似问题