วิธีดูแท็กระยะไกล?


136

ใน Atlassian SourceTree จะรู้ได้อย่างไรว่าแท็กใดเป็นเฉพาะในเครื่องและแท็กใดอยู่ในระยะไกลด้วย

เมื่อสร้างแท็กคุณจะได้รับตัวเลือก "Push tag to: ... " แต่จะทราบได้อย่างไรว่ามีการส่งแท็กหรือไม่หลังจากสร้างแล้ว ฉันสามารถดูแท็กทั้งหมดของฉันได้ในเครื่อง แต่ฉันต้องแน่ใจว่าแท็กเหล่านี้อยู่ในระยะไกลเพื่อให้นักพัฒนารายอื่นสามารถดึงแท็กเหล่านั้นได้


ฉันได้อัปเดตคำตอบของฉันด้านล่างเพื่อตอบ Atlassian SourceTree โดยเฉพาะ
VonC

คำตอบ:


121

แม้ว่าจะไม่มีการโคลนหรือดึงข้อมูล แต่คุณสามารถตรวจสอบรายการแท็กบน repo ต้นน้ำได้ด้วยgit ls-remote:

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

(ดังภาพประกอบใน " เมื่อแสดงรายการ git-ls-remote เหตุใดจึงมี" ^{}"หลังชื่อแท็ก ")

xbmonoแสดงในความคิดเห็นที่จำเป็นต้องมีคำพูด:

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

โปรดทราบว่าคุณสามารถพุชคอมมิตและแท็กในคำสั่งเดียวได้ตลอดเวลาด้วย (git 1.8.3+, เมษายน 2013):

git push --follow-tags

ดูกดกระทำคอมไพล์และแท็กพร้อมกัน


เกี่ยวกับ Atlassian SourceTree โดยเฉพาะ:

โปรดทราบว่าจากเธรดนี้ SourceTree จะแสดงแท็กในเครื่องเท่านั้น

มี RFE (ขอเพิ่มประสิทธิภาพ) เข้าสู่ระบบSRCTREEWIN-4015ตั้งแต่ธันวาคม 2015

วิธีแก้ปัญหาง่ายๆ:

ดูรายการเฉพาะแท็กที่ไม่ได้แก้ไขหรือไม่

git push - แท็ก

หรือทำPush all tagsเครื่องหมายที่ช่อง "" ในกล่องโต้ตอบ "Push" แท็กทั้งหมดจะถูกส่งไปที่รีโมทของคุณ

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

ด้วยวิธีนี้คุณจะ "แน่ใจได้ว่าพวกเขาอยู่ในระยะไกลเพื่อให้นักพัฒนารายอื่นสามารถดึงพวกเขาได้"


3
เยี่ยมมาก แต่ฉันถามว่าจะรู้ได้อย่างไรด้วย Atlassian SourceTree ไม่ใช่บรรทัดคำสั่งคอมไพล์
cprcrack


ฉันพยายามrefs/tags/MyTag^{}รับรหัสคอมมิตที่เชื่อมโยงกับแท็กนั้น แต่คำสั่งgit ls-remoteนี้ไม่ส่งคืนอะไรเลย มีวิธีใดบ้างในการรับรหัสคอมมิตของแท็กที่ถูกอ้างถึง
xbmono

@xbmono นี่น่าจะเป็นstackoverflow.com/a/12939216/6309
VonC

1
@xbmono จับดี! ฉันได้รวมความคิดเห็นของคุณไว้ในคำตอบเพื่อให้มองเห็นได้มากขึ้น
VonC

145

คุณสามารถแสดงรายการแท็กบนที่เก็บระยะไกลด้วยls-remoteจากนั้นตรวจสอบว่ามีอยู่หรือไม่ สมมติว่าชื่ออ้างอิงระยะไกลมีoriginดังต่อไปนี้

git ls-remote --tags origin

tagและคุณสามารถแสดงรายการแท็กในท้องถิ่นที่มี

git tag

คุณสามารถเปรียบเทียบผลลัพธ์ด้วยตนเองหรือในสคริปต์


1
@VonC คุณเร็วกว่า :) ฉันพยายามที่จะแก้ปัญหามากขึ้นคำถามที่จะได้คุ้นเคยกับgit git:)
Landys

ไม่มีปัญหานั่นคือวิธีที่ฉันเรียนรู้ Git มาตั้งแต่ปลายปี 2008
VonC

1
เยี่ยมมาก แต่ฉันถามว่าจะรู้ได้อย่างไรด้วย Atlassian SourceTree ไม่ใช่บรรทัดคำสั่งคอมไพล์
cprcrack

2
@cprcrack คุณถามว่า Atlassian SourceTree มีคุณสมบัติในการดูแท็กระยะไกลใน GUI ใช่หรือไม่? ฉันดูคร่าวๆแล้วดูเหมือนจะไม่ใช่ แต่ทำไมไม่คลิกที่เมนูActions -> Open in Terminalจากนั้นพิมพ์git ls-remote --tags originและเรียกใช้?
Landys

2
@Landys ขอบคุณที่มีประโยชน์ เมื่อแสดงรายการแท็กระยะไกลฉันเห็นรายการสองรายการ มีรหัสที่แตกต่างกัน แต่ชื่อแท็กเดียวกันยกเว้น postfix ^ {} ตัวอย่าง: release-v1.0, release-v1.0 ^ {}, release-v1.1, release-v1.1 ^ {} ฯลฯ คุณรู้หรือไม่ว่ารายการพิเศษเหล่านั้นคืออะไร? แม้ว่ารายการพิเศษจะมี ID ต่างกัน แต่ git log <ID> ก็ให้เอาต์พุตเหมือนกัน
shiouming
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.