จะแสดงรายการแท็กทั้งหมดที่มีการคอมมิตได้อย่างไร


227

คำถามนี้คล้ายกับวิธีแสดงรายการแท็กทั้งหมดที่ชี้ไปยังการคอมมิทเฉพาะในคอมไพล์แต่มีความแตกต่าง: ฉันต้องการค้นหาแท็กทั้งหมดที่มีการคอมมิทเฉพาะภายในทรีของแต่ละแท็กไม่ใช่เฉพาะไฟล์ที่ทำเครื่องหมายในแท็ก ตัวเอง (ในกรณีนี้เฉพาะการเปลี่ยนแปลง Makefile เท่านั้นที่ถูกแท็ก)


1
คุณไม่สามารถแท็กไฟล์โดยเฉพาะ - แท็กชี้เฉพาะการกระทำ คุณอาจต้องการแก้ไขคำถามด้วยรายละเอียดเพิ่มเติมของปัญหาที่คุณพยายามแก้ไข
Mark Longair

2
ดูเพิ่มเติม: วิธีการสาขารายการที่มีให้กระทำ
David J.

หมายเหตุ: บน Windows, ตรวจสอบการใช้คอมไพล์ 2.0.x (2014) ถ้าคุณต้องการgit tag --containsที่จะไม่ผิดพลาด ดูคำตอบของฉันด้านล่าง
VonC

คำตอบ:


348
git tag --contains <commit>

2
ฉันได้ลองแล้ว แต่ถ้าแท็กมีไฟล์เดียวฉันเชื่อว่ามันจะค้นหาไฟล์นั้นเท่านั้น มันจะไม่ค้นหาต้นไม้ นอกจากนี้ที่เก็บที่ฉันลองใช้นั้นเป็นคอมไพล์ขนาดใหญ่ที่ประกันตัวและได้ SIGKILL'ed
atx

21
แท็กไม่มีไฟล์ พวกเขาเป็นเพียงเครื่องหมายสำหรับการกระทำ ระบุว่าฉันไม่คิดว่าการคัดค้านของคุณสมเหตุสมผล
amalloy

มันจะต้องไม่แสดงให้ฉันเห็นความมุ่งมั่นเพราะขาดความทรงจำในกรณีนั้น คุณรู้ไหมว่าฉันจะเอาชนะสิ่งนี้ได้อย่างไร
atx

5
มีวิธีทำเช่นนี้กับแท็กระยะไกลหรือไม่? คล้ายกับสาขา:git branch -r --contains <commit>
Mike

23

โปรดทราบว่าคุณต้องมี git 2.0.x (Q3 2014) เพื่อแสดงรายการแท็กทั้งหมดสำหรับการส่งบางรายการหากคุณมี repo ขนาดใหญ่

ดูคอมมิชชัน cbc60b6โดยJean-Jacques Lafay ( lanfeust69) :

git tag --contains: หลีกเลี่ยง stack overflow

ใน repos ขนาดใหญ่การดำเนินการเรียกซ้ำของcontains(commit, commit_list)อาจส่งผลให้สแตกล้น แทนที่การสอบถามซ้ำด้วยการวนซ้ำเพื่อแก้ไข

ปัญหานี้ปรากฏชัดเจนบน Windows มากกว่าบน Linux โดยที่ stack จะถูก จำกัด ตามค่าเริ่มต้น

ดูเพิ่มเติมหัวข้อนี้ในรายการ msysgit


9
เล่นสำนวนไม่ตั้งใจ? ;-)
MikeSchinkel

3
@ MikeSchinkel ดี ... ไม่ใช่คนที่ตั้งใจอย่างน้อย
VonC

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.