git fetch <gitserver> <remotetag>:<localtag>
===================================
Tôi chỉ làm điều này. Đầu tiên tôi chắc chắn rằng tôi biết chính tả tên thẻ.
git ls-remote --tags gitserver; : or origin, whatever your remote is called
Điều này đã cho tôi một danh sách các thẻ trên máy chủ git của tôi để lựa chọn. Người đăng ban đầu đã biết tên thẻ của anh ấy nên bước này không cần thiết cho mọi người. Đầu ra trông như thế này, mặc dù danh sách thực sự dài hơn.
8acb6864d10caa9baf25cc1e4857371efb01f7cd refs/tags/v5.2.2.2
f4ba9d79e3d760f1990c2117187b5010e92e1ea2 refs/tags/v5.2.3.1
8dd05466201b51fcaf4ca85897347d82fcb29518 refs/tags/Fix_109
9b5087090d9077c10ba22d99d5ce90d8a45c50a3 refs/tags/Fix_110
Tôi đã chọn thẻ tôi muốn và lấy nó và không có gì hơn như sau.
git fetch gitserver Fix_110
Sau đó tôi đã gắn thẻ này trên máy cục bộ của mình, đặt tên của tôi cùng tên.
git tag Fix_110 FETCH_HEAD
Tôi không muốn sao chép kho lưu trữ từ xa như những người khác đã đề xuất, vì dự án tôi đang thực hiện rất lớn và tôi muốn phát triển trong một môi trường sạch đẹp. Tôi cảm thấy điều này gần với các câu hỏi ban đầu "Tôi đang cố gắng tìm ra cách tải xuống TAG THAM GIA" so với giải pháp gợi ý nhân bản toàn bộ kho lưu trữ. Tôi không thấy lý do tại sao mọi người phải có một bản sao mã nguồn Windows NT và Windows 8.1 nếu họ muốn xem mã nguồn DOS 0.1 (ví dụ).
Tôi cũng không muốn sử dụng KIỂM TRA như những người khác đã đề xuất. Tôi đã có một chi nhánh kiểm tra và không muốn ảnh hưởng đến điều đó. Ý định của tôi là tìm nạp phần mềm tôi muốn để tôi có thể chọn thứ gì đó và thêm nó vào sự phát triển của mình.
Có lẽ có một cách để tự tìm nạp thẻ chứ không chỉ là một bản sao của cam kết đã được gắn thẻ. Tôi đã phải gắn thẻ cam kết tìm nạp chính mình. EDIT: Ah vâng, tôi đã tìm thấy nó bây giờ.
git fetch gitserver Fix_110:Fix_110
Nơi bạn nhìn thấy dấu hai chấm, đó là tên từ xa: tên cục bộ và ở đây chúng là tên thẻ. Điều này chạy mà không làm đảo lộn cây làm việc, vv Nó dường như chỉ sao chép nội dung từ xa vào máy cục bộ để bạn có bản sao của riêng mình.
git fetch gitserver --dry-run Fix_110:Fix_110
với tùy chọn --dry-run được thêm vào sẽ cho phép bạn xem lệnh sẽ làm gì, nếu bạn muốn xác minh những gì bạn muốn. Vì vậy, tôi đoán một đơn giản
git fetch gitserver remotetag:localtag
là câu trả lời thực sự.
= =
Một lưu ý riêng về thẻ ... Khi tôi bắt đầu một cái gì đó mới, tôi thường gắn thẻ kho lưu trữ trống sau git init, kể từ khi
git rebase -i XXXXX
yêu cầu một cam kết và câu hỏi đặt ra "làm thế nào để bạn thực hiện các thay đổi bao gồm thay đổi phần mềm đầu tiên của bạn?" Vì vậy, khi tôi bắt đầu làm việc tôi làm
git init
touch .gitignore
[then add it and commit it, and finally]
git tag EMPTY
tức là tạo một cam kết trước khi thay đổi thực sự đầu tiên của tôi và sau đó sử dụng
git rebase -i EMPTY
nếu tôi muốn từ chối tất cả công việc của mình, kể cả thay đổi đầu tiên .