Trong kho lưu trữ của tôi, tôi đã tạo các thẻ bằng các lệnh sau.
git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'
Làm thế nào để bạn liệt kê tất cả các thẻ trong kho lưu trữ?
Trong kho lưu trữ của tôi, tôi đã tạo các thẻ bằng các lệnh sau.
git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'
Làm thế nào để bạn liệt kê tất cả các thẻ trong kho lưu trữ?
Câu trả lời:
git tag
nên là đủ. Xem git tag
trang người đàn ông
Bạn cũng có:
git tag -l <pattern>
Liệt kê các thẻ có tên khớp với mẫu đã cho (hoặc tất cả nếu không có mẫu nào được cung cấp).
Nhập "thẻ git" không có đối số, cũng liệt kê tất cả các thẻ.
Gần đây hơn (" Cách sắp xếp thẻ git? ", Cho Git 2.0+)
git tag --sort=<type>
Sắp xếp theo thứ tự cụ thể.
Loại được hỗ trợ là:
- "
refname
" (thứ tự từ điển),- "
version:refname
" Hoặc "v:refname
" (tên thẻ được coi là phiên bản).Chuẩn bị "-" để đảo ngược thứ tự sắp xếp.
Điều đó liệt kê cả hai:
Lưu ý: bài viết sẵn sàng git về việc gắn thẻ không chấp nhận thẻ nhẹ.
Nếu không có đối số, thẻ git sẽ tạo ra một thẻ hạng nhẹ của Wikipedia về cơ bản là một nhánh không bao giờ di chuyển.
Các thẻ nhẹ vẫn hữu ích, có lẽ để đánh dấu một phiên bản tốt (hoặc xấu) đã biết hoặc một loạt các cam kết bạn có thể cần sử dụng trong tương lai.
Tuy nhiên, có lẽ bạn không muốn đẩy các loại thẻ này .Thông thường, bạn muốn ít nhất vượt qua tùy chọn -a để tạo thẻ không dấu hoặc ký tên bằng khóa GPG thông qua các tùy chọn -s hoặc -u.
Điều đó đang được nói, Charles Bailey chỉ ra rằng một ' git tag -m "..."
' thực sự ngụ ý một thẻ (chú thích không dấu) thích hợp (tùy chọn -a
'), và không phải là một thẻ nhẹ. Vì vậy, bạn là tốt với lệnh ban đầu của bạn.
Điều này khác với:
git show-ref --tags -d
Danh sách các thẻ có cam kết của chúng (xem " Danh sách thẻ Git, hiển thị băm sha1 ").
Lưu ý -d
để hủy đăng ký đối tượng thẻ chú thích (có cam kết riêng SHA1) và hiển thị cam kết được gắn thẻ thực tế.
Tương tự, git show --name-only <aTag>
sẽ liệt kê các thẻ và cam kết liên quan.
Cũng git show-ref
khá hữu ích, do đó bạn có thể liên kết trực tiếp các thẻ với các cam kết tương ứng :
$ git tag
osgeolive-6.5
v8.0
...
$ git show-ref --tags
e7e66977c1f34be5627a268adb4b9b3d59700e40 refs/tags/osgeolive-6.5
8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 refs/tags/v8.0
...
hg tags
tôi thích điều đó git show-ref
mang lại cho tôi thẻ VÀ bản sửa đổi.
Và đây là cách bạn tìm thấy các thẻ từ xa:
git ls-remote --tags origin
Cố gắng làm cho git tag
nó là đủ nếu không cố gắng để làm git fetch
sau đó git tag
.
git tag
lệnh là đủ nếu bạn chỉ muốn xem danh sách các thẻ có sẵn. Nếu bạn không thể thấy một số thẻ mà bạn tin rằng có thể tồn tại trên điều khiển từ xa, thì các thẻ cục bộ của bạn có thể không đồng bộ với điều khiển từ xa. Trong trường hợp này, hãy tìm nạp các ref / head mới nhất từ xa trước git fetch
, sau đó là thực tế git tag
. Tôi thường chạy một lớp lót như thế này: $ git fetch -p && git tag
chỉ để chắc chắn rằng tôi đang xem xét mới nhất và tốt nhất.
Liệt kê các thẻ có sẵn trong Git rất đơn giản. Chỉ cần gõ git tag
(với tùy chọn -l
hoặc --list
).
$ git tag
v5.5
v6.5
Bạn cũng có thể tìm kiếm các thẻ phù hợp với một mẫu cụ thể.
$ git tag -l "v1.8.5*"
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2
Lấy thẻ mới nhất trên kho git
Lệnh tìm thẻ gần đây nhất có thể truy cập từ một cam kết. Nếu thẻ trỏ đến cam kết, thì chỉ thẻ được hiển thị. Mặt khác, nó có hậu tố tên thẻ với số lần xác nhận bổ sung ở trên cùng của đối tượng được gắn thẻ và tên đối tượng viết tắt của lần xác nhận gần đây nhất.
git describe
Với --abbrev
thiết lập 0
, lệnh có thể được sử dụng để tìm gần nhất tagname
mà không có hậu tố:
git describe --abbrev=0
Những ví dụ khác:
git describe --abbrev=0 --tags # gets tag from current branch
git describe --tags `git rev-list --tags --max-count=1` // gets tags across all branches, not just the current branch
Cách tỉa thẻ git cục bộ không tồn tại trên remote
Nói một cách đơn giản, nếu bạn đang cố gắng làm một cái gì đó như thế git fetch -p -t
, nó sẽ không hoạt động bắt đầu với phiên bản git 1.9.4
.
Tuy nhiên, có một cách giải quyết đơn giản vẫn hoạt động trong các phiên bản mới nhất:
git tag -l | xargs git tag -d // remove all local tags
git fetch -t // fetch remote tags
v0.1.0-rc1 fatal: No tags can describe '5db7534...4a94'. Try --always, or create some tags.
Để xem chi tiết về thẻ có sẵn mới nhất, đôi khi tôi sử dụng:
git show `git describe` --pretty=fuller
Nếu bạn muốn kiểm tra tên thẻ của mình cục bộ, bạn phải đi đến đường dẫn mà bạn đã tạo thẻ (đường dẫn cục bộ). Có nghĩa là nơi bạn đã đặt các đối tượng của bạn. Sau đó gõ lệnh:
git show --name-only <tagname>
Nó sẽ hiển thị tất cả các đối tượng dưới tên thẻ đó. Tôi đang làm việc trong Teradata và đối tượng có nghĩa là xem, bảng vv
Bạn có thể liệt kê tất cả các thẻ hiện có git tag
hoặc bạn có thể lọc danh sách git tag -l 'v1.1.*'
, trong đó *
hoạt động như một ký tự đại diện. Nó sẽ trả về một danh sách các thẻ được đánh dấu bằngv1.1
.
Bạn sẽ nhận thấy rằng khi bạn gọi git tag
bạn không được xem nội dung của các chú thích. Để xem trước chúng, bạn phải thêm -n
vào lệnh của bạn : git tag -n2
.
$ git tag -l -n2
Phiên bản v1.0 1.0
Phiên bản v1.1 1.1
Lệnh liệt kê tất cả các thẻ hiện có với tối đa 3 dòng thông điệp thẻ của chúng. Theo mặc định -n
chỉ hiển thị dòng đầu tiên. Để biết thêm thông tin hãy chắc chắn kiểm tra bài viết liên quan đến thẻ này là tốt.