← study index

study note

Học về git tag, semantic

An English translation is not available yet. Showing the original article.
On this page (4)
  1. Học về git tag, semantic
  2. Semantic Versioning (Quy chuẩn đặt tên phiên bản: MAJOR.MINOR.PATCH)
  3. Git Tag là gì và tại sao lại dùng?
  4. Về commit

Học về git tag, semantic

Semantic Versioning (Quy chuẩn đặt tên phiên bản: MAJOR.MINOR.PATCH)

Để người dùng và hệ thống tự động biết phiên bản phần mềm có những thay đổi gì, người ta dùng chuẩn Semantic Versioning (SemVer) gồm 3 con số có dạng: vX.Y.Z (Ví dụ: v3.5.3 như trên màn hình):

  • MAJOR (Số đầu tiên - X): Thay đổi lớn, tính năng bị phá vỡ cấu trúc cũ (Breaking Changes). Code mới không tương thích ngược với bản cũ.

Ví dụ: Nâng cấp từ v2.0.0 lên v3.0.0.

  • MINOR (Số ở giữa - Y): Thêm tính năng mới (New Feature) nhưng vẫn tương thích ngược với các bản trước.

Ví dụ: Nâng cấp từ v3.1.0 lên v3.2.0.

  • PATCH (Số cuối cùng - Z): Sửa lỗi nhỏ (Bug Fixes) hoặc cải tiến hiệu năng nhẹ.

Ví dụ: Sửa lỗi nhỏ trong bản v3.5.2 thành v3.5.3 (giống câu lệnh git tag -a v3.5.3 -m "Release 3.5.3" trong video).

Git Tag là gì và tại sao lại dùng?

Khái niệm: Tag giống như một "nhãn dán" cố định gắn vào một Commit cụ thể để đánh dấu mốc phiên bản phát hành (Release) của phần mềm.

Sự khác nhau giữa Branch (Nhánh) và Tag:

  • Branch: Luôn thay đổi và di chuyển tiến về phía trước mỗi khi bạn thêm commit mới.
  • Tag: Cố định tại một điểm commit lịch sử. Dù bạn code thêm bao nhiêu commit sau đó, Tag đó vẫn nằm yên ở vị trí cũ.

Về commit

Khi bạn dùng git commit --amend, Git sẽ xóa commit cũ và tạo ra một commit hoàn toàn mới với mã Hash mới ở máy Local.

Trong khi đó, trên GitHub (Remote) vẫn đang lưu commit cũ trước đó.

Việc này làm lịch sử Commit giữa Local và Remote bị bất đồng bộ (divergent), nên khi bạn git pull, Git phân vân không biết nên gộp hai lịch sử này theo kiểu Merge hay Rebase.