2012-05-16 30 views
14

Tôi phải tạo một số thẻ mỗi ngày trong kho lưu trữ Git.
Khi tôi có nhiều thẻ, nó có làm cho kho lưu trữ của tôi chậm chạp hoặc gây ra các vấn đề khác không?Có quá nhiều thẻ gây ra bất kỳ vấn đề nào trong Git không?

Lưu ý: Tôi đang sử dụng GitHub, nhưng vui lòng trả lời một cách tổng quát.

+0

Thẻ AFAIK chỉ là một con trỏ đến một cam kết. Nếu một dịch vụ như github phải xử lý thêm cho mỗi thẻ, nó có thể chậm hơn để cập nhật trên trang web, nhưng git chính nó không nên chậm lại, ngoại trừ có thể 'git log' nếu bạn có một vài triệu thẻ. –

Trả lời

6

(Annotated) tags sẽ không làm cho Git chậm chạp, chỉ khó sử dụng hơn vì bạn sẽ gặp khó khăn hơn trong việc tìm các thẻ có liên quan trong số tất cả các thẻ trung gian.

Trường hợp xấu nhất, nó có thể làm cho giao diện web của bạn (như GitHub) chậm chạp nếu nó phải hiển thị hàng nghìn thẻ.

Có thể tất cả các thẻ đó không cần phải được đẩy, trong trường hợp đó bạn có thể xem xét việc làm cho địa phương trung gian "Lightweight" tags.

+0

Thẻ trọng lượng nhẹ là thẻ mặc định, phải không? –

+0

@VonC Tôi cần phải đẩy chúng, chúng sẽ được sử dụng sau này bởi những người dùng khác. Tôi đã tự hỏi liệu tôi có cần làm sạch những cái cũ hơn không. –

+0

@ ML-- bạn có thể xóa chúng, trước tiên cục bộ trên điều khiển từ xa: 'git tag -d 12.15',' git push origin: refs/tags/12.15'. Tuy nhiên, đồng nghiệp của bạn có thể gặp khó khăn hơn trong việc đồng bộ hóa: http://stackoverflow.com/questions/1841341/remove-local-tags-that-are-no-longer-on-the-remote-repository – VonC

-1

Nếu bạn sử dụng windows/cmd, khi đó bạn sẽ gặp lỗi "nghiêm trọng: quá nhiều thông số" này nếu bạn sử dụng dấu nháy đơn trong lệnh của mình. Ví dụ. git tag -a ann_v1.1 -m 'Annotated tag v1.1'. Để khắc phục, thay vào đó hãy sử dụng dấu ngoặc kép. Điều này báo giá duy nhất gây ra vấn đề ở những nơi khác quá. Ví dụ. git commit -m 'dangerous stuff' sẽ gây ra lỗi - lỗi: pathspec 'nguy hiểm' không khớp với bất kỳ tệp nào được biết đến với git.

2

Sử dụng Git 2.8.1 trên Windows, tôi đã trải qua sự chậm trễ nhỏ từ lệnh nhất định khi có rất nhiều thẻ (15000 hoặc lâu hơn), bao gồm:

  • git log (với --decorate)

  • git status

  • Xem lịch sử trong Visual Studio.

  • Sử dụng dấu nhắc lệnh khi đầu được tách ra (vì Git Bash in đẹp bản sửa đổi hiện tại bên cạnh thư mục hiện tại).

Các lệnh này đều kiểm tra thẻ để trang trí các bản sửa đổi được hiển thị. Mỗi lệnh này mất khoảng 1-2 giây dài hơn không có thẻ.

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