Computer >> Máy Tính >  >> Lập trình >> Lập trình

Thẻ Git

Gắn thẻ là một tính năng được sử dụng để theo dõi các điểm cụ thể trong lịch sử của kho lưu trữ Git.

Theo thời gian, khi bạn làm việc với hệ thống lưu trữ Git, bạn sẽ thực hiện một số thay đổi lớn đối với cơ sở mã của mình. Trong Git, các cam kết được sử dụng để theo dõi các thay đổi riêng lẻ.

Tuy nhiên, nếu bạn muốn ghi lại một điểm trong lịch sử kho lưu trữ của mình, chẳng hạn như một phiên bản, thì bạn sẽ muốn sử dụng tính năng gắn thẻ Git.

Hướng dẫn này sẽ thảo luận, với các ví dụ, khái niệm cơ bản về gắn thẻ và cách sử dụng lệnh thẻ git để làm việc với các thẻ trong kho lưu trữ Git. Khi đọc xong hướng dẫn này, bạn sẽ trở thành một chuyên gia làm việc với các thẻ trong Git.

Gắn thẻ Git

Thẻ là các tham chiếu (refs) trỏ đến một phần cụ thể trong lịch sử của hệ thống lưu trữ Git.

Các thẻ thường được các nhà phát triển sử dụng để nắm bắt một điểm cụ thể trong lịch sử của một repo để tạo một phiên bản phát hành. Ví dụ:khi một nhà phát triển đã sẵn sàng khởi chạy phiên bản mới của một dự án, họ có thể tạo một thẻ cho dự án.

Về bản chất, thẻ là các nhánh không thay đổi. Sau khi bạn tạo thẻ, sẽ không có thêm cam kết nào được thêm vào lịch sử của thẻ. Thay vào đó, thẻ sẽ lưu trữ ảnh chụp nhanh về cách kho lưu trữ xuất hiện khi thẻ được thêm vào.

Có hai loại thẻ khác nhau được hỗ trợ trong Git. Đó là:

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

  • Các thẻ được chú thích. Đây là những thẻ được lưu trữ dưới dạng đối tượng đầy đủ trong cơ sở dữ liệu Git.
  • Thẻ nhẹ. Đây là các thẻ là một tên và một con trỏ đến một cam kết.

Bây giờ chúng ta đã thảo luận về những điều cơ bản về gắn thẻ Git, hãy khám phá cách bạn có thể làm việc với các thẻ trong Git.

Tạo thẻ

Trước khi có thể bắt đầu làm việc với các thẻ trong Git, bạn cần tạo một thẻ. Cú pháp tạo thẻ trong Git như sau:

 thẻ git  

Thông số "name" đề cập đến tên của thẻ bạn muốn tạo. Bởi vì gắn thẻ thường được sử dụng để theo dõi các phiên bản của dự án, bạn có thể muốn sử dụng tên như “v1.2” hoặc “beta-v0.9” cho một thẻ.

Thẻ bạn tạo sẽ được áp dụng cho cam kết hiện tại mà bạn đang sử dụng trong kho lưu trữ của mình.

Thẻ được chú thích

Thẻ chú thích là thẻ lưu trữ một đối tượng đầy đủ trong cơ sở dữ liệu Git. Khi bạn tạo thẻ có chú thích, siêu dữ liệu như tên của người đã tạo thẻ, email của họ và ngày tạo thẻ sẽ được lưu trữ.

Ngoài ra, các thẻ được chú thích được lưu trữ cùng với một thông báo cho thẻ. Nói chung, các thẻ chú thích được ưu tiên hơn các thẻ nhẹ vì siêu dữ liệu được lưu trữ bởi các thẻ chú thích có thể có một số công dụng.

Ví dụ:nếu bạn muốn theo dõi ai là người chịu trách nhiệm lập phiên bản theo thời gian, bạn sẽ cần quyền truy cập vào siêu dữ liệu được lưu trữ bởi thẻ được chú thích.

Đây là cú pháp để tạo thẻ chú thích trong Git:

 thẻ git -a  

Cờ -a được sử dụng để yêu cầu Git tạo thẻ chú thích. Tham số "name" là tên của thẻ mà chúng tôi muốn tạo.

Sau khi chúng tôi chạy lệnh này, trình soạn thảo văn bản mặc định của hệ thống sẽ mở ra và yêu cầu chúng tôi chèn thông báo cho thẻ được chú thích của chúng tôi. Điều này xảy ra bởi vì, như chúng ta đã thảo luận trước đó, các thẻ chú thích được lưu trữ cùng với một thông báo.

Ngoài ra, bạn có thể chỉ định thông báo mà thẻ sẽ được tạo trực tiếp. Bạn có thể làm như vậy bằng cách sử dụng mã này:

 thẻ git -a  -m  

Thẻ -m được sử dụng để thêm thông báo vào thẻ được chú thích. Giả sử chúng tôi muốn tạo một thẻ có tên là v1.9 với thông báo “phiên bản 1.9”. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:

 thẻ git -a v1.9 -m "phiên bản 1.9" 

Khi chúng tôi chạy lệnh này, một thẻ có tên v1.9 sẽ được tạo với thông báo kèm theo “phiên bản 1.9”.

Chạy lệnh này thuận tiện hơn so với việc sử dụng thẻ git mà không có thông báo, vì cách này cho phép chúng tôi chỉ định thông báo cam kết trực tiếp mà không cần phải nhập một thông báo vào trình soạn thảo văn bản mặc định xuất hiện khi bạn không chỉ định thông báo cam kết.

Thẻ nhẹ

Để tạo một thẻ nhẹ, bạn nên sử dụng cú pháp thẻ git tiêu chuẩn mà chúng ta đã thảo luận trước đó. Giả sử bạn muốn tạo một thẻ nhẹ có tên “v1.9.1”. Bạn có thể làm như vậy bằng cách sử dụng mã này:

 thẻ git v1.9.1 

Lệnh này sẽ tạo một thẻ nhẹ có tên là v1.9.1. Khi bạn tạo một thẻ nhẹ, bạn không cần chỉ định thông báo thẻ. Thay vào đó, một tổng kiểm tra thẻ mới sẽ được tạo và lưu trữ trong thư mục .git của dự án.

Liệt kê các thẻ của dự án

Khi bạn đang làm việc trên một dự án lớn, bạn có thể có một số phiên bản được gắn thẻ của kho lưu trữ của mình. Để truy xuất danh sách các thẻ được lưu trữ trong một dự án, bạn có thể sử dụng lệnh sau:

 thẻ git 

Lệnh này trả về một danh sách các thẻ. Dưới đây là ví dụ đầu ra từ lệnh này:

 v1.9.1v1.9.0v1.8.11v1.8.10v1.8.9 ... 

Ngoài ra, cờ -l có thể được sử dụng để lọc ra các thẻ được sử dụng với một dự án. Ví dụ:nếu bạn muốn truy xuất danh sách mọi thẻ bắt đầu bằng “v1.8”, bạn có thể sử dụng mã này:

 thẻ git -l v1.8 * 

Trong lệnh của chúng tôi, chúng tôi đã chỉ định cờ -l, theo sau là “v1.8 *”. Điều này hướng dẫn Git truy xuất danh sách tất cả các thẻ bắt đầu bằng v1.8. Dấu hoa thị (*) biểu thị rằng các thẻ được trả về có thể bao gồm bất kỳ ký tự nào sau “v1.8”.

Dưới đây là ví dụ đầu ra từ lệnh này:

 v1.8.11v1.8.10v1.8.9v1.8.8 ... 

Như bạn có thể thấy, tất cả các thẻ được trả về đều bắt đầu bằng “v1.8”.

Kiểm tra thẻ

Lệnh git checkout có thể được sử dụng để xem trạng thái của kho lưu trữ trong một cam kết với một thẻ cụ thể. Ví dụ:giả sử bạn muốn xem kho lưu trữ của mình khi nó ở v1.1. Bạn có thể làm như vậy bằng cách sử dụng mã này:

 git checkout v1.1 

Lệnh này chuyển kho lưu trữ sang trạng thái “HEAD tách rời”, có nghĩa là bất kỳ thay đổi nào bạn thực hiện sẽ không cập nhật phiên bản được gắn thẻ của kho. Thay vào đó, một cam kết tách rời mới sẽ được tạo ra sẽ không được liên kết với bất kỳ nhánh nào.

Sau khi chúng tôi chạy lệnh này, chúng tôi có thể thấy codebase của chúng tôi xuất hiện như thế nào trong cam kết được gắn thẻ v1.1.

Gắn thẻ cam kết cũ

Trong các ví dụ trước của chúng tôi, chúng tôi đã thảo luận về cách sử dụng chức năng thẻ git để thêm thẻ vào phiên bản git hiện tại mà bạn đang làm việc. Điều này là do, theo mặc định, thẻ git sẽ tạo một thẻ cho cam kết HEAD (cam kết mà bạn hiện đang xem).

Tuy nhiên, bạn cũng có thể gắn thẻ một cam kết cũ bằng lệnh thẻ git. Bạn có thể làm như vậy bằng cách chỉ định tham chiếu của một cam kết cụ thể mà bạn muốn thêm thẻ.

Giả sử bạn muốn thêm thẻ vào lần cam kết cuối cùng trong kho lưu trữ của mình. Để làm như vậy, trước tiên bạn cần chạy nhật ký git. Điều này sẽ cho phép bạn truy xuất danh sách các cam kết gần đây. Dưới đây là một ví dụ về lệnh git log đang hoạt động (với cờ –pretty =oneline, giúp chúng tôi dễ dàng xem các cam kết của mình):

 git log --pretty =oneline 

Lệnh của chúng tôi trả về:

 8cd29ae5d04abbdbd856d2c2f55f2b82133903e8 Đẩy tính năng ghi nhật ký mới2911aae73ed1dd372bcdf8f520b174c3817c818b Khởi tạo tính năng ghi nhật ký9646aa785211f3069ce01177da98e23b7890d285 

Bây giờ, giả sử chúng tôi muốn thêm thẻ vào cam kết “Khắc phục sự cố số 342”. Chúng tôi muốn thẻ này được gọi là “v1.3”. Chúng tôi có thể thêm thẻ này bằng cách sử dụng mã sau:

 thẻ git -a v1.3 9646aa785211f3069ce01177da98e23b7890d859 

Lệnh này thêm thẻ 1.3 vào cam kết mà chúng tôi đã tham chiếu trong mã của mình. Trong trường hợp này, chúng tôi đã chỉ định hàm băm SHA cho cam kết với thông báo “Khắc phục sự cố # 342”.

Thay thế thẻ cũ

Mỗi cam kết chỉ có thể có một thẻ. Nếu bạn quyết định rằng bạn muốn thay thế thẻ được liên kết với một cam kết bằng một thẻ khác, bạn có thể làm như vậy bằng cách sử dụng thẻ git. Tuy nhiên, bạn phải chỉ định tùy chọn -f (force), tùy chọn này sẽ ghi đè thẻ hiện có tại chỗ

Giả sử chúng ta muốn thêm thẻ “v1.3.1” vào cam kết mà chúng ta đã thảo luận trong ví dụ trước. Nếu chúng tôi cố gắng làm như vậy mà không sử dụng cờ -f, một thông báo lỗi sẽ xuất hiện. Để thêm thẻ “v1.3.1” vào cam kết trước đó của chúng tôi, chúng tôi có thể sử dụng lệnh này:

 thẻ git -a -f v1.3.1 9646aa785211f3069ce01177da98e23b7890d859 

Lệnh này thêm thẻ “v1.3.1” vào cam kết của chúng tôi và ghi đè thẻ “v1.3” mà chúng tôi đã có trước đó.

Xóa thẻ

Để xóa thẻ bằng git, bạn có thể sử dụng cờ -d. Giả sử chúng ta muốn xóa thẻ “v1.3” khỏi kho lưu trữ của mình. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:

 thẻ git -d v1.3git thẻ 

Mã của chúng tôi trả về:

 v1.4v1.2v1.1 

Lệnh đầu tiên xóa thẻ v1.3 khỏi kho lưu trữ của chúng tôi. Lệnh thứ hai trả về một danh sách các thẻ. Như bạn có thể thấy, khi chúng tôi truy xuất danh sách các thẻ, thẻ v1.3 bị thiếu. Điều này là do chúng tôi đã xóa thẻ bằng cờ -d.

Kết luận

Gắn thẻ là một tính năng quan trọng của Git được các nhà phát triển sử dụng để theo dõi các phiên bản khác nhau của kho lưu trữ Git. Các thẻ có thể được thêm vào cam kết hiện tại mà nhà phát triển đang xem hoặc vào một cam kết hiện có trong kho lưu trữ.

Hướng dẫn này đã thảo luận, với các ví dụ, khái niệm cơ bản về gắn thẻ trong Git và cách sử dụng lệnh thẻ Git. Bây giờ, bạn đã sẵn sàng để bắt đầu sử dụng lệnh thẻ git như một nhà phát triển chuyên nghiệp!