Bài này nhằm mục đích note lại cách lấy mã nguồn theo tag với Git. Ví dụ ở đây tôi có dự án koa-log4js có được release với các tags:

No.NgàyTag
120/04/2016koa1
220/04/2016koa2
323/02/2017v2.2.0
418/10/20172.3.0

Thường khi chạy lệnh $ git clone về thì chỉ tải được branch mặc định là master chẳng hạn về thôi, còn các tag kia thì ta phải tải riêng.

Lúc này để tải được riêng từng tag thì ta cần phải fetch toàn bộ tags về và checkout tạo branch mới với tag tương ứng:

$ git clone https://github.com/dominhhai/koa-log4js.git
$ cd koa-log4js
$ git fetch origin 'refs/tags/*:refs/tags/*'

Sau khi chạy lệnh fetch tags ở trên, ta có thể kiểm tra lại các tags hiện có bằng cách:

$ git tag -l

Sau đó ta chạy lệnh checkout để lấy mã nguồn của tag mong muốn. Ví dụ, lấy mã nguồn của tag v2.2.0:

$ git checkout tags/v2.2.0 -b v2.2.0

Lúc này, một branch mới tên là v2.2.0 sẽ được tạo ra để chứa mã nguồn của tag v2.2.0 tương ứng.

Một cách ngắn gọn, ta tổng kết 2 lệnh chính là fetchcheckout tags như sau:

$ git fetch origin 'refs/tags/*:refs/tags/*'
$ git checkout tags/[YOUR_TAG_NAME] -b [YOUR_TAG_NAME]

Have fun!