有没有关于git存档数量的最大限制?

15

Git是否有存储工作区快照的最大数量限制,还是可以根据需要存储任意多个工作区快照?

我知道

git stash list

列出的结果不如

git stash list --date=local

但是Linus Torvalds是否认为,拥有多于x个存储库的人是个白痴,应该失去旧的存储库呢?


5
Linus Torvalds的观点与任何事情有什么关系? - CB Bailey
1
如果您有大量的存储,也许其中一些应该被命名为分支。 - Adam Vandenberg
1
@Charles,Git 的很多设计都基于 Linus Torvalds 的观点。 - Laurence Gonsalves
1
@Laurence Gonsalves:Linux Torvalds并没有编写git-stash,也不是git的维护者,当它被集成到git源代码树中时,并没有对git-stash做出任何贡献,因此我不认为他可能对其使用方式持有的任何观点与其当前行为相关。 - CB Bailey
2
@Charles,这些都是很好的知识,如果你一开始就这样评论的话可能会更有成效。考虑到你对Git历史的了解,你应该很清楚一个不太了解Git的人可能会认为git-stash的行为受到Linus观点的影响,因为Git的其他部分也受到了他的影响。 - Laurence Gonsalves
显示剩余3条评论
2个回答

23

储藏库没有硬性限制。储藏库只是使用特殊命名的stash引用的reflog来实现。


这是否意味着如果您执行 git prunegit gc,它们就有可能被删除? - Andrew Grimm
你知道的,我不太确定。一般来说,reflog会持续90天(对于无法访问的提交,则为30天)。我希望git不会将此限制应用于stash,但我不能确定。 - Lily Ballard
3
我刚刚检查了源代码,它确实似乎专门处理stash。 - Lily Ballard

11

不,没有限制。事实上,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万情况它仍然能够正常工作。因此,是的,储藏库的数量确实是无限制的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接