Sử dụng git ls-remote --tags <repository>
Ví dụ, nếu chúng ta muốn biết những gì các thẻ mới nhất mà Git tại thời điểm chúng tôi sẽ làm
git ls-remote --tags git://github.com/git/git.git
Điều đó trả về một danh sách dài với tất cả các thẻ theo thứ tự bảng chữ cái, như hình dưới đây (cắt ngắn vì lợi ích của sanity). Dòng cuối cùng cho chúng tôi biết thẻ mới nhất là v1.8.0-rc0
.
Hãy ghi nhớ rằng thẻ có thể được bất kỳ loại chuỗi như vậy, như đã chỉ ra bởi Christopher Gervais trong his answer, git ls-remote
cả các loại thẻ theo thứ tự abc. Rất tiếc, git ls-remote
không có tùy chọn --sort
(ví dụ: git for-each-ref
), do đó, tùy chọn tốt nhất của bạn là sử dụng số gốc sort
.
Các phiên bản gần đây của sort
hỗ trợ cờ -V
hoặc --version-sort
để tạo một số tự nhiên (phiên bản) trong văn bản.
Vì vậy, để sort them naturally, lệnh của bạn sẽ trông như thế này:
git ls-remote --tags git://github.com/git/git.git | sort -t '/' -k 3 -V
Hãy xem tại (và phiếu bầu tán thành) Christopher Gervais's answer dưới đây nếu bạn cần lựa chọn hơn/khác grep
ing.
...
e4dc716b1cfefb0e1bd46c699d4f74009118d001 refs/tags/v1.7.9
828ea97de486c1693d6e4f2c7347acb50235a85d refs/tags/v1.7.9^{}
cc34c0417dfd4e647e41f3d34a032b7164aadea7 refs/tags/v1.7.9-rc0
eac2d83247ea0a265d923518c26873bb12c33778 refs/tags/v1.7.9-rc0^{}
ad2ec9a47a031ebf056444a94bea3750aaa68f63 refs/tags/v1.7.9-rc1
6db5c6e43dccb380ca6e9947777985eb11248c31 refs/tags/v1.7.9-rc1^{}
eab05abaeb51531e11835aaa4c26564a1babebac refs/tags/v1.7.9-rc2
bddcefc6380bd6629f3f12b5ffd856ec436c6abd refs/tags/v1.7.9-rc2^{}
...
5ace0b7af106b44687005085d8c252f8be9da5d3 refs/tags/v1.8.0-rc0
b0ec16b49eb283156e13bbef26466d948e4fd992 refs/tags/v1.8.0-rc0^{}
Đây là câu trả lời. – Qix
làm cách nào để loại bỏ mọi thứ trừ tên chi nhánh? – kilianc
@kilianc Bạn có thể sử dụng một cái gì đó như '| cut -f 2' nhưng thành thật mà nói nó nghe như một câu hỏi riêng ... Một cái gì đó như http://stackoverflow.com/questions/219402/what-linux-shell-command-returns-a-part-of-a- string – Potherca