Git是否有存储工作区快照的最大数量限制,还是可以根据需要存储任意多个工作区快照?
我知道
git stash list
列出的结果不如
git stash list --date=local
但是Linus Torvalds是否认为,拥有多于x个存储库的人是个白痴,应该失去旧的存储库呢?
储藏库没有硬性限制。储藏库只是使用特殊命名的stash
引用的reflog来实现。
git prune
或 git gc
,它们就有可能被删除? - Andrew Grimm不,没有限制。事实上,Git可以优雅地处理大量的stash:
$ du -sh .git; \
> for i in {1..10000}; do echo $i > README; git stash -q; done; \
> git gc -q; du -sh .git; time git stash list | wc -l
8.5M .git
13M .git # space efficient
10000 # all there
real 0m0.212s # listing 10,000 entries
$ echo foo > README; time git stash -q; time git stash pop -q
real 0m0.159s # save still fast
real 0m0.146s # pop still fast
我没有进行更多的测试,但我认为对于10万或100万情况它仍然能够正常工作。因此,是的,储藏库的数量确实是无限制的。
git-stash
,也不是git的维护者,当它被集成到git源代码树中时,并没有对git-stash
做出任何贡献,因此我不认为他可能对其使用方式持有的任何观点与其当前行为相关。 - CB Bailey