Tôi đã đọc phân nhánh Git và gắn thẻ các thực tiễn tốt nhất và nhận xét gắn thẻ git - thực tiễn tốt nhất , nhưng tôi không thấy câu trả lời trực tiếp cho điều gì đó mà tôi đã tự hỏi trong một thời gian dài:
Tại sao Git có thẻ? (thay vì chỉ các chi nhánh)
Họ dường như là công dân hạng hai, hoặc ít nhất là "khác biệt". Họ không bị đẩy trừ khi bạn chỉ định rõ ràng. Xóa các thẻ từ xa không gây ra xóa trong repos xuôi dòng.
Điểm cuối cùng này là một vấn đề gần đây, khi ai đó đã đẩy một loạt các thẻ rác với hàng tấn cam kết từ một repo khác. Chúng tôi có thể xóa chúng ngược dòng và gc các cam kết, nhưng điều đó sẽ không phù hợp, và lần tới khi ai đó đẩy một thẻ với git push --tags
, họ sẽ sửa lại các thẻ rác và cam kết. Vì vậy, chúng tôi phải đảm bảo mọi người đã xóa chúng.
Khi nào và tại sao tôi sẽ sử dụng thẻ thay vì chi nhánh?