[Git] Đánh dấu commit với Tag

[Git] Đánh dấu commit với Tag

Nếu bạn commit quá nhiều thì sẽ gây khó khăn cho bạn về sau nếu cần xem lại thông tin của lần commit trướcmà bạn có thể đánh dấu commit với Tag và khi cần xem lại rất dễ dàng.

Trong khi bạn commit các lần chỉnh sửa của mình thì mọi thứ sẽ được đều lưu vào log mà mình đã hướng dẫn bạn cách xem commit log ở phần trước. Tuy nhiên nếu bạn commit quá nhiều thì sẽ gây khó khăn cho bạn về sau nếu cần xem lại thông tin của lần commit trước mà bạn có thể gắn thẻ đánh dấu (tag) cho mỗi commit và khi cần xem bạn chỉ cần sử dụng lệnh git show tên_tag là đã có thông tin rất rõ ràng, ngoài ra nó còn giúp bạn dễ dàng diff (đối chiếu) sau này khi không cần nhớ checksum (dù chỉ cần nhớ vài ký tự đầu tiên) của mỗi commit mà chỉ cần nhớ tag, cũng như có thể tạo thêm branch từ tag để bạn thuận tiện hơn trong việc phân nhánh.

Lightweight Tag và Annotated Tag

Trong Git có hai kiểu tag chính đó là:

  • Lightweight Tag: Các tag này chỉ đơn thuần là đánh dấu snapshot của commit.
  • Annotated Tag: Với tag này, bạn có thể đặt tiêu đề cho tag, và khi xem nó sẽ có thông tin về người tag, ngày tag,….

Cách tạo Lightweight Tag

Trước tiên, bạn có thể gõ git tag để xem danh sách các tag có trong dự án của bạn. Sau đó để tạo thêm một tag, bạn có thể gõ git tag tên_tag để tạo. Ví dụ như v1.0 chẳng hạn.

Bây giờ bạn có thể xem thông tin của lần commit được gắn tag này bằng lệnh git show tên_tag. Lưu ý rằng lệnh trên nó sẽ đánh dấu lần commit cuối cùng của bạn vào tag v1.0.

Cách tạo Annotated Tag

Để tạo Annotated Tag thì bạn cũng sử dụng lệnh git tag nhưng sẽ có thêm tham số -a và tham số -m để thiết lập lời nhắn cho tag này.

Bạn có thể thấy khi show ra, cái Annotated tag sẽ có nhiều thông tin hơn là so với cái tag thông thường, và đây cũng là kiểu tag bạn nên sử dụng để có nhiều thông tin hơn.

Thêm tag cho các commit cũ

Ở lệnh trên thì bạn chỉ tạo ra tag cho commit cuối cùng của bạn. Còn nếu bạn có rất nhiều commit trước đó mà cần gắn commit với tag thì chỉ cần thêm mã checksum (hoặc một đoạn mã checksum) của lần commit đó.

Để xem mã checksum của các lần commit trước đó thì bạn có thể sử dụng git log với tham số --pretty với giá trịoneline để lọc log nhé.

Và bây giờ mình có thể đặt tag cho commit Initial commit thì sẽ khai báo một đoạn mã checksum của nó vào lệnhgit tag như sau.

Push Tag

Mặc định lệnh git push sẽ không push các tag đã tạo lên repository mà bạn có thể dùng lệnh git push --tags để đẩy toàn bộ tag lên repository.

Nếu bạn dùng Github hay các dịch vụ tương tự thì bây giờ bạn sẽ thấy tag xuất hiện ở repository.

git-tag-github

Nhập tag vào branch

Mặc dù ở bài sau mình sẽ giải thích qua branch nhưng tạm thời bây giờ bạn có thể hiểu branch là một phân nhánh trong một cây dự án để bạn sửa mã nguồn mà không ảnh hưởng đến phân nhánh gốc (master).

Bây giờ bạn có thể truy cập vào dữ liệu mà bạn đã commit với tag kèm theo việc tạo một branch mới với lệnhgit checkout -b tên_branch tên_tag. Ví dụ mình muốn đưa cái tag v1.0-an vào một branch mới tênversion1 thì sẽ viết như sau:

Lúc này bạn đã tự động chuyển qua branch version1 thay vì master ban đầu, kèm theo đó là dữ liệu của lần commit được gắn tag v1.0-an.

Bây giờ nếu bạn muốn làm việc thêm với branch này thì cứ làm việc như khi bạn ở master. Để chuyển về lại master, bạn gõ lệnh git checkout master.

Để push cái branch này lên bạn có thể sử dụng lệnh git push origin version1. Nếu bạn quên thì mình nhắc lại nhé, origin chính là tên địa chỉ remote của repository mặc định mà Git tự đặt khi bạn clone.

git-push-branch

Bây giờ bạn thử vào xem cái version1 và cái master xem có thấy sự khác nhau của nó không? Ở bài nói về branch mình sẽ giải thích cho bạn kỹ hơn. Đại loại là bạn tạo một phân nhánh khác để sửa code riêng mà không ảnh hưởng đến code chính.

Lời kết

Trong bài này chắc bạn đã thấy được sức mạnh của Git là như thế nào và khi nó kết hợp với branch thì sẽ rất tuyệt vời trong việc phân chia nhánh cho mã nguồn để bạn làm việc linh hoạt hơn, dễ dàng chuyển đổi qua các phiên bản mà không cần làm gì nhiều. Bạn đừng lo lắng khi chưa hiểu rõ về branch, mình sẽ giải thích ngay ở phần sau đây.

[Git] Đánh dấu commit với Tag

[Git] Đánh dấu commit với Tag

( Series Git cơ bản )


WordPress FAQ  >  Tools FAQ  >  Công cụ


WordPress   |   Hoi dap WordPress   |   Hỏi đáp WordPress   |   WordPress FAQ   |   Hoc WordPress   |   Su dung WordPress   |   Lap trinh WordPress |   Plugin WordPress   |   SEO WordPress   |   Thuat ngu WordPress    |  Theme WordPress  |  Tools FAQ

Chia sẻ bài viết

Bình luận