2011-01-05 37 views
11

Có số lượng git stashes tối đa hoặc bạn có thể có bao nhiêu lần tùy thích không?Có số lượng git stashes tối đa không?

Tôi biết rằng

git stash list 

không liệt kê càng nhiều kết quả như

git stash list --date=local 

Nhưng liệu Linus Torvalds nghĩ rằng bất cứ ai với hơn x ẩn nấp là một thằng ngốc người xứng đáng để mất các stashes cũ?

+5

Um, ý kiến ​​của Linus Torvalds có liên quan gì? –

+1

Nếu bạn có một số lượng lớn các stashes có lẽ một số người trong số họ nên được đặt tên chi nhánh để thay thế. –

+0

Bạn có chắc chắn bạn không chỉ thấy hành vi mặc định của git khi thêm $ PAGER vào bất kỳ thứ gì có đủ đầu ra để cuộn màn hình không? –

Trả lời

19

Không có giới hạn cứng nào để phát hành. Stashes được thực hiện đơn giản bằng cách sử dụng reflog của một ref đặc biệt có tên là stash.

+0

Điều này có nghĩa là chúng có thể bị xóa nếu bạn thực hiện 'git prune' hoặc' git gc'? –

+0

Ya biết, tôi không chắc chắn. Nói chung, việc khôi phục lại kéo dài trong 90 ngày (hoặc 30 ngày đối với các cam kết không thể truy cập). Tôi mong rằng git không áp dụng giới hạn này cho stash, nhưng tôi không thể chắc chắn. –

+3

Tôi chỉ cần kiểm tra nguồn, nó thực sự xuất hiện để xử lý stash đặc biệt. –

8

Không, không giới hạn. Trong thực tế, Git xử lý số lượng lớn các stashes khá duyên dáng:

$ 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 

Tôi không thử nghiệm nhiều hơn, nhưng tôi cho rằng nó vẫn hoạt động tương tự với 100.000 hoặc một triệu. Vì vậy, có, số lượng stashes thực sự là không giới hạn.

Các vấn đề liên quan