2012-07-01 32 views
6

Tôi đã gặp rất nhiều nhà phát triển thề bằng cách gắn thẻ gits. Cá nhân, tôi chưa bao giờ thấy việc sử dụng nó.Tại sao một người nào đó nên gắn thẻ trong Git?

Tôi hiểu rằng bạn có thể đặt thông tin phiên bản vào thẻ, nhưng tại sao không chỉ đặt thông tin đó vào thông báo cam kết?

Tôi chỉ nhầm lẫn về giá trị mà thẻ thêm rằng thông báo cam kết không thể.

+5

Thẻ về bản chất là một chi nhánh được thiết kế không thay đổi. Bạn sử dụng chúng cho cùng một lý do bạn sử dụng các nhánh (có tên cho các điểm cụ thể trong lịch sử, chứ không phải chỉ băm), nhưng bạn sử dụng các nhánh cho khi bạn mong muốn tên đó thay đổi vị trí và các thẻ khi bạn không. – Amber

+0

@Amber Lời giải thích thực sự tốt! – Jonathan

Trả lời

8

Thẻ cho phép bạn tham chiếu một cam kết cụ thể trong kho lưu trữ. Sử dụng ví dụ: phiên bản thẻ, bạn có thể dễ dàng nhận được cam kết trong dự án của mình tương ứng với ví dụ: phiên bản 1.5. Điều này là thích hợp hơn để ghi nhớ giá trị băm của một cam kết cụ thể, hoặc di chuyển/greping thông qua thông tin nhật ký để tìm ra cam kết nào đại diện cho phiên bản 1.5.

Điều này có thể hữu ích vì nhiều lý do, nhưng xem xét chỉ là một: bạn có hai khách hàng đang chạy phiên bản khác nhau của phần mềm của bạn, client Một tại phiên bản 1.5client B sử dụng phiên bản 2.0. Khách hàng A báo cáo lỗi và bạn không thể chỉ nâng cấp cài đặt của họ và thay vào đó cần phải giải quyết lỗi trong mã số 1.5 phiên bản. Gắn thẻ phiên bản 1.5 cho phép bạn dễ dàng lấy lại mã mà họ đang chạy và hoạt động trên một bugfix.

5

Thông báo cam kết thường được sử dụng để cung cấp thêm thông tin về lý do tại sao cam kết được thực hiện thay vì 'nó là phiên bản X'.

Sử dụng thẻ, bạn có thể quay lại phiên bản được gắn thẻ mà không phải cuộn qua nhật ký để tìm đúng số cam kết; bạn hãy xem trực tiếp phiên bản được gắn thẻ. Và không gian tên hạn chế hơn cho các thẻ là một lợi ích ở đây, không phải là một trở ngại.

8

Trong Git, một thẻ cho phép bạn chỉ định tên tượng trưng (cái gì đó dễ nhớ) cho một cam kết cụ thể. Điều này cho phép bạn tham chiếu đến cam kết đó theo tên, thay vì theo số số cam kết.

Đôi khi tôi thêm thẻ cục bộ khi tôi liên tục giới thiệu về một phiên bản cụ thể, chẳng hạn như một điểm ngay trước khi hoàn thành rất nhiều công việc. Tôi cũng sử dụng thẻ được chú thích để gắn thẻ số phiên bản phát hành cụ thể (thẻ được chú thích có thể dễ dàng được đẩy và có thể chứa mô tả bổ sung khác ngoài tên).

2

Lưu ý rằng bạn có thể sign a tag, đó là điều quan trọng khi bạn muốn đẩy (tức là xuất bản để repo khác)

Xem "Why do some open source projects do not accept pull requests, but emailing patch files only".

Vậy tại sao bạn sẽ gắn thẻ trong Git (một được phân phối hệ thống kiểm soát phiên bản)?

Bạn có thể gắn thẻ để tham chiếu đến một cây có tên tượng trưng (như được giải thích trong các câu trả lời khác).

Nhưng bạn cũng có thể ký thẻ của mình để đóng góp cho một repo khác bằng cách xác minh tính toàn vẹn của nội dung.
Người nhận chỉ cần làm là check that tag signature để xác nhận nó đến từ một nguồn đáng tin cậy.

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