Làm thế nào để xem thẻ từ xa?


136

Trong Atlassian SourceTree, làm thế nào để biết thẻ nào chỉ cục bộ và thẻ nào ở xa?

Khi tạo thẻ, bạn có tùy chọn "Đẩy thẻ tới: ...", nhưng làm thế nào để biết thẻ có bị đẩy hay không sau khi được tạo? Tôi có thể thấy tất cả các thẻ của mình cục bộ, nhưng tôi cần chắc chắn rằng chúng có mặt ở xa để các nhà phát triển khác có thể kéo chúng.


Tôi đã cập nhật câu trả lời của mình dưới đây để giải quyết cụ thể về Atlassian SourceTree.
VonC

Câu trả lời:


121

Ngay cả khi không nhân bản hoặc tìm nạp, bạn có thể kiểm tra danh sách các thẻ trên repo ngược dòng với git ls-remote:

git ls-remote --tags /url/to/upstream/repo

(như được minh họa trong " Khi liệt kê git-ls-remote tại sao lại có ^{}tên Tử sau tên thẻ? ")

xbmono minh họa trong các ý kiến rằng trích dẫn là cần thiết:

git ls-remote --tags /some/url/to/repo "refs/tags/MyTag^{}"

Lưu ý rằng bạn luôn có thể đẩy các cam kết thẻ của mình trong một lệnh bằng (git 1.8.3+, tháng 4 năm 2013):

git push --follow-tags

Xem Push git commit & tags đồng thời .


Về Atlassian SourceTree cụ thể:

Lưu ý rằng, từ chuỗi này , CHỈ SourceTree hiển thị các thẻ cục bộ.

Có một RFE (Yêu cầu cải tiến) được đăng nhập SRCTREEWIN-4015từ tháng 12 năm 2015.

Một cách giải quyết đơn giản:

Xem danh sách các thẻ chưa được đánh dấu?

git đẩy --tags

hoặc chọn Push all tagshộp "" trên hộp thoại "Đẩy", tất cả các thẻ sẽ được đẩy vào điều khiển từ xa của bạn.

https://community.atlassian.com/tnckb94959/attachments/tnckb94959/sourcetree-questions/10923/1/Screen%20Shot%202015-12-15%20at%208.49.48%20AM.png

Bằng cách đó, bạn sẽ "chắc chắn rằng chúng có mặt từ xa để các nhà phát triển khác có thể kéo chúng".


3
Điều đó thật tuyệt nhưng tôi đã hỏi về cách nhận biết nó với Atlassian SourceTree, không phải dòng lệnh git.
cprcrack


Tôi đã cố gắng refs/tags/MyTag^{}để id id được liên kết với thẻ đó nhưng lệnh git ls-remotenày không trả về bất cứ điều gì. Có cách nào để có được id cam kết của một thẻ bị hủy bỏ không?
xbmono

@xbmono Đây phải là stackoverflow.com/a/12939216/6309
VonC

1
@xbmono Bắt tốt! Tôi đã bao gồm nhận xét của bạn trong câu trả lời để dễ nhìn hơn.
VonC

145

Bạn có thể liệt kê các thẻ trên kho lưu trữ từ xa ls-remote, rồi kiểm tra xem nó có ở đó không. Giả sử tên tham chiếu từ xa là originnhư sau.

git ls-remote --tags origin

Và bạn có thể liệt kê các thẻ địa phương với tag.

git tag

Bạn có thể so sánh kết quả bằng tay hoặc theo kịch bản.


1
@VonC Bạn nhanh hơn. :) Tôi đang cố gắng giải quyết nhiều gitcâu hỏi hơn để làm quen git. :)
Landys

Không có vấn đề gì: đó là cách tôi đã học Git từ cuối năm 2008
VonC

1
Điều đó thật tuyệt nhưng tôi đã hỏi về cách nhận biết nó với Atlassian SourceTree, không phải dòng lệnh git.
cprcrack

2
@cprcrack Vậy bạn đã hỏi liệu Atlassian SourceTree có cung cấp tính năng này để xem các thẻ từ xa trong GUI không? Tôi có một cái nhìn thô bạo, và có vẻ như không. Nhưng tại sao không chỉ nhấp vào menu Actions -> Open in Terminal, sau đó gõ git ls-remote --tags originvà chạy?
Landys

2
@Landys Cảm ơn, điều đó hữu ích. Khi liệt kê các thẻ từ xa, tôi thấy các mục kép. Họ có ID khác nhưng tên thẻ giống nhau ngoại trừ với postfix ^ {}. Ví dụ: phát hành-v1.0, phát hành-v1.0 ^ {}, phát hành-v1.1, phát hành-v1.1 ^ {}, v.v. Bạn có biết những mục nhập thêm đó là gì không? Mặc dù các mục nhập thêm có ID khác, mặc dù git log <ID> cho cùng một đầu ra.
shiouming
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.