แท็ก git คืออะไร, วิธีสร้างแท็ก & วิธีชำระเงินแท็ก git ระยะไกล


524

เมื่อฉันชำระเงินแท็ก git ระยะไกลใช้คำสั่งเช่นนี้:

git checkout -b local_branch_name origin/remote_tag_name

ฉันมีข้อผิดพลาดเช่นนี้:

error: pathspec `origin/remote_tag_name` did not match any file(s) known to git.

ฉันสามารถค้นหา remote_tag_name เมื่อฉันใช้คำสั่ง git tag

คำตอบ:


1155

เริ่มต้นด้วยการอธิบายว่าแท็กในคอมไพล์คืออะไร

ป้อนคำอธิบายรูปภาพที่นี่

แท็กจะใช้ในฉลากและทำเครื่องหมายที่เฉพาะเจาะจงกระทำในประวัติศาสตร์
โดยปกติจะใช้เพื่อทำเครื่องหมายจุดปล่อย (เช่น v1.0 เป็นต้น)

แม้ว่าแท็กอาจปรากฏคล้ายกับสาขาแท็ก แต่ไม่ได้เปลี่ยน มันชี้ตรงไปที่เฉพาะเจาะจงกระทำในประวัติศาสตร์

ป้อนคำอธิบายรูปภาพที่นี่


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

ก่อนอื่นตรวจสอบให้แน่ใจว่าแท็กนั้นอยู่ในเครื่องโดยทำ

# --all will fetch all the remotes.
# --tags will fetch all tags as well
$ git fetch --all --tags --prune

จากนั้นตรวจสอบแท็กด้วยการเรียกใช้

$ git checkout tags/<tag_name> -b <branch_name>

แทนที่จะoriginใช้tags/คำนำหน้า


ในตัวอย่างนี้คุณมี 2 แท็กเวอร์ชัน 1.0 และเวอร์ชัน 1.1 คุณสามารถตรวจสอบได้ด้วยสิ่งต่อไปนี้:

$ git checkout A  ...
$ git checkout version 1.0  ...
$ git checkout tags/version 1.0  ...

ทั้งหมดข้างต้นจะทำเช่นเดียวกันเนื่องจากแท็กเป็นเพียงตัวชี้ไปยังการส่งที่กำหนด

ป้อนคำอธิบายรูปภาพที่นี่
ที่มา: https://backlog.com/git-tutorial/img/post/stepup/capture_stepup4_1_1.png


จะดูรายการของแท็กทั้งหมดได้อย่างไร

# list all tags
$ git tag

# list all tags with given pattern ex: v-
$ git tag --list 'v-*'

วิธีสร้างแท็ก

มี 2 ​​วิธีในการสร้างแท็ก:

# lightweight tag 
$ git tag 

# annotated tag
$ git tag -a

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

ป้อนคำอธิบายรูปภาพที่นี่

จะลบแท็กได้อย่างไร

# delete any (local) given tag
$ git tag -d <tag name>

# Delete a tag from the server with push tags
$ git push --delete origin <tag name>

วิธีโคลนแท็กเฉพาะ

เพื่อคว้าเนื้อหาของแท็กที่กำหนดคุณสามารถใช้checkoutคำสั่ง ดังที่ได้อธิบายไว้ข้างต้นแท็กก็เหมือนกับการกระทำอื่น ๆ ดังนั้นเราจึงสามารถใช้checkoutและแทนที่จะใช้ SHA-1 เพียงแทนที่ด้วยtag_name

ตัวเลือกที่ 1:

# Update the local git repo with the latest tags from all remotes
$ git fetch --all

# checkout the specific tag
$ git checkout tags/<tag> -b <branch>

ตัวเลือก 2:

การใช้คำสั่ง clone

เนื่องจาก git รองรับการโคลนแบบตื้นโดยการเพิ่ม--branchคำสั่ง clone เราจึงสามารถใช้ชื่อแท็กแทนชื่อสาขา Git รู้วิธี "แปล" SHA-1 ที่ได้รับไปยังการกระทำที่เกี่ยวข้อง

# Clone a specific tag name using git clone 
$ git clone <url> --branch=<tag_name>

git clone - สาขา =

--branch ยังสามารถใช้แท็กและแยก HEAD ที่กระทำในที่เก็บผลลัพธ์


จะผลักดันแท็กได้อย่างไร

git push --tags

ในการผลักดันแท็กทั้งหมด:

# Push all tags
$ git push --tags 

ใช้แทนเพียงระบุrefs/tags<tagname>

ทำไม? - แนะนำให้ใช้refs/tagsเนื่องจากบางครั้งแท็กอาจมีชื่อเดียวกับกิ่งของคุณและการกด git ง่าย ๆ จะผลักสาขาแทนแท็ก

ในการพุชแท็กที่มีคำอธิบายประกอบและแท็กโซ่ประวัติปัจจุบันให้ใช้:

git push --follow-tags

การตั้งค่าสถานะนี้--follow-tagsกดทั้งการคอมมิตและแท็กที่มีทั้ง:

  • แท็กที่มีคำอธิบายประกอบ (เพื่อให้คุณสามารถข้ามแท็กบิลด์ / สร้างท้องถิ่น)
  • แท็กที่เข้าถึงได้ (บรรพบุรุษ) จากสาขาปัจจุบัน (อยู่ที่ประวัติ)

ป้อนคำอธิบายรูปภาพที่นี่

จาก Git 2.4 คุณสามารถตั้งค่าโดยใช้การกำหนดค่า

$ git config --global push.followTags true

cheatsheet: ป้อนคำอธิบายรูปภาพที่นี่



3
ดี git checkout A. คือAอะไร คุณสร้างAอย่างไร
ฮันนี่

3
@CodeWizard แผนภูมิการไหลที่ดี! คุณใช้ซอฟต์แวร์ใดในการผลิต
Giovanni Lovato

4
@Honey Aเป็นแฮชคอมมิชชัน
Alex Baklanov

2
@GiovanniLovato แผนภูมิการไหลเป็นบุคคลที่สาม ลิงก์ไปยังรูปภาพคือbacklog.com/git-tutorial/img/post/stepup/ ......ซึ่งมาจากหน้านี้backlog.com/git-tutorial/stepup/stepup4_1.htmlเว็บไซต์ที่เรียกว่า Git Beginner's Guide for Dummies (backlog .com)
จอร์จ

2
มันน่าสังเกตว่าไม่จำเป็นต้องใช้git checkout tags/<tag_name> -b <branch_name> ให้ฉันถอดหัว ตามบทความนี้เกี่ยวกับหัวหน้าเดี่ยวคุณหลีกเลี่ยงหัวหน้าเดี่ยวโดยสร้างและลบสาขาชั่วคราว นี่เป็นกระบวนการทำงานของเอเลี่ยน เห็นได้ชัดว่าฉันเป็นผู้ใช้คอมไพล์จำเป็นต้องคุ้นเคยกับการสร้างและลบสาขาเพื่อความสนุกสนานและผลกำไร -b <branch_name>git checkout tags/<tag_name>
icc97

194

(คำตอบนี้ใช้เวลาสักครู่ในการเขียนและคำตอบของ codeWizardนั้นถูกต้องในจุดมุ่งหมายและสาระสำคัญ แต่ไม่สมบูรณ์ทั้งหมดดังนั้นฉันจะโพสต์สิ่งนี้ต่อไป)


ไม่มีสิ่งเช่น "แท็ก Git ระยะไกล" มี "แท็ก" เท่านั้น ผมชี้ออกทั้งหมดนี้ไม่ได้ที่จะอวดความรู้1แต่เนื่องจากมีการจัดการที่ดีของความสับสนเกี่ยวกับเรื่องนี้กับผู้ใช้ Git สบายและเอกสารที่ Git ไม่เป็นประโยชน์มาก2ที่จะเริ่มต้น (ไม่ชัดเจนว่าเกิดความสับสนเนื่องจากเอกสารที่ไม่ดีหรือเอกสารที่ไม่ดีมาเพราะสิ่งนี้ค่อนข้างสับสนหรืออะไร)

มีเป็น "สาขาระยะไกล" เรียกว่ามากขึ้นอย่างถูกต้อง "ระยะไกลติดตามสาขา" แต่มันเป็นที่น่าสังเกตว่าเหล่านี้เป็นหน่วยงานท้องถิ่นจริง ไม่มีแท็กระยะไกลแม้ว่า (เว้นแต่คุณจะเป็นผู้ประดิษฐ์แท็กเหล่านั้น) มีแท็กท้องถิ่นเท่านั้นดังนั้นคุณต้องได้รับแท็กในเครื่องเพื่อใช้งาน

รูปแบบทั่วไปสำหรับชื่อที่เฉพาะเจาะจงกระทำซึ่งเรียก Git อ้างอิง -is สตริงใด ๆ refs/ที่เริ่มต้นด้วย สตริงที่เริ่มต้นด้วยrefs/heads/ชื่อสาขา สตริงเริ่มต้นด้วยrefs/remotes/ชื่อสาขาติดตามระยะไกล; และสตริงที่ขึ้นต้นด้วยrefs/tags/ชื่อแท็ก ชื่อrefs/stashคือการอ้างอิงที่เก็บ (ตามที่ใช้โดยgit stash: หมายเหตุการขาดเครื่องหมายสแลช)

มีบางชื่อกรณีพิเศษที่ผิดปกติที่ไม่ได้เริ่มต้นด้วยการเป็นrefs/: HEAD, ORIG_HEAD, MERGE_HEADและCHERRY_PICK_HEADโดยเฉพาะอย่างยิ่งทุกคนนอกจากนี้ยังมีชื่อที่อาจหมายถึงการกระทำที่เฉพาะเจาะจง (แม้ว่าHEADตามปกติมีชื่อของสาขาคือมี) แต่โดยทั่วไปเริ่มต้นด้วยการอ้างอิงref: refs/heads/branchrefs/

สิ่งหนึ่งที่ Git ทำเพื่อทำให้เกิดความสับสนนี้ก็คือมันช่วยให้คุณสามารถละเว้นrefs/และมักจะเป็นคำพูดหลังจากrefs/นั้น ตัวอย่างเช่นคุณสามารถละเว้นrefs/heads/หรือrefs/tags/เมื่ออ้างถึงสาขาหรือแท็กท้องถิ่นและในความเป็นจริงคุณต้องละเว้นrefs/heads/เมื่อทำการตรวจสอบสาขาท้องถิ่น! คุณสามารถทำได้เมื่อใดก็ตามที่ผลลัพธ์ไม่ชัดเจนหรือ - ตามที่เราเพิ่งสังเกต - เมื่อคุณต้องทำ (สำหรับ)git checkout branch

เป็นความจริงที่การอ้างอิงนั้นไม่เพียง แต่ในที่เก็บข้อมูลของคุณเท่านั้น แต่ยังอยู่ในที่เก็บข้อมูลระยะไกลด้วย อย่างไรก็ตาม Git ช่วยให้คุณสามารถเข้าถึงการอ้างอิงของที่เก็บระยะไกลในเวลาที่ระบุเท่านั้น: ระหว่างfetchและpushการดำเนินการ นอกจากนี้คุณยังสามารถใช้git ls-remoteหรือgit remote showดูพวกเขา แต่fetchและpushเป็นจุดที่น่าสนใจของการติดต่อ

Refspecs

ในระหว่างfetchและpushGit ใช้สตริงที่เรียกrefspecsเพื่อถ่ายโอนการอ้างอิงระหว่างที่เก็บในท้องถิ่นและระยะไกล ดังนั้นจึงเป็นช่วงเวลาเหล่านี้และผ่าน refspecs ที่เก็บ Git สองแห่งสามารถซิงค์กันได้ เมื่อชื่อของคุณซิงค์กันแล้วคุณสามารถใช้ชื่อเดียวกับที่มีคนใช้รีโมต แม้ว่าจะมีเวทมนตร์พิเศษบางอย่างที่นี่fetchและมันส่งผลกระทบต่อทั้งชื่อสาขาและชื่อแท็ก

คุณควรคิดว่าgit fetchเป็นผู้กำกับ Git ของคุณให้เรียก (หรืออาจเป็นข้อความตัวอักษร) Git อีกตัว - "ระยะไกล" - และสนทนากับมัน ในช่วงต้นของการสนทนารีโมตจะแสดงรายการข้อมูลอ้างอิงทั้งหมด: ทุกอย่างในrefs/heads/และทุกสิ่งในrefs/tags/รวมถึงข้อมูลอ้างอิงอื่น ๆ ที่มี Git ของคุณสแกนผ่านสิ่งเหล่านี้และ (ขึ้นอยู่กับ refspec ดึงข้อมูลปกติ) เปลี่ยนชื่อสาขาของพวกเขา

ลองดู refspec ปกติสำหรับชื่อระยะไกลorigin:

$ git config --get-all remote.origin.fetch
+refs/heads/*:refs/remotes/origin/*
$ 

Refspec นี้สั่งให้ Git ของคุณทำการจับคู่ชื่อทุกชื่อrefs/heads/*- ทุกสาขาในรีโมต - และเปลี่ยนชื่อเป็นrefs/remotes/origin/*เช่นให้ส่วนที่ตรงกันตรงกันเปลี่ยนชื่อสาขา ( refs/heads/) เป็นชื่อสาขาติดตามระยะไกล ( refs/remotes/โดยเฉพาะ , refs/remotes/origin/)

มันเป็นผ่าน refspec นี้ว่าorigin's originสาขากลายเป็นสาขาที่ห่างไกลการติดตามของคุณสำหรับระยะไกล ชื่อสาขาจะกลายเป็นชื่อสาขาของการติดตามระยะไกลโดยมีชื่อของรีโมตในกรณีนี้originรวมอยู่ด้วย เครื่องหมายบวก+ที่ด้านหน้าของ refspec ตั้งค่าสถานะ "บังคับ" เช่นสาขาการติดตามระยะไกลของคุณจะได้รับการอัปเดตให้ตรงกับชื่อสาขาของรีโมตโดยไม่คำนึงถึงสิ่งที่ต้องใช้ในการจับคู่ (หากไม่มีการ+อัปเดตสาขาจะ จำกัด เฉพาะการเปลี่ยนแปลง "กรอไปข้างหน้า" และการอัปเดตแท็กจะถูกละเว้นเพียงตั้งแต่ Git เวอร์ชัน 1.8.2 หรือก่อนหน้านั้นจะมีการใช้กฎการกรอไปข้างหน้าแบบเดียวกัน)

แท็ก

แต่แท็กล่ะ อย่างน้อยก็ไม่มีค่าอ้างอิงสำหรับพวกเขา คุณสามารถตั้งค่าหนึ่งในกรณีที่รูปแบบของการอ้างอิงขึ้นอยู่กับคุณ; git fetch --tagsหรือคุณสามารถเรียก ใช้--tagsมีผลกระทบของการเพิ่มrefs/tags/*:refs/tags/*การ refspec คือมันนำกว่าแท็กทั้งหมด ( แต่ไม่ได้อัปเดตของคุณแท็กหากคุณมีแท็กที่มีชื่อนั้นคำนึงถึงสิ่งที่แท็กระยะไกลกล่าวว่าการแก้ไขมกราคม 2017: ณ Git 2.10 การทดสอบแสดงให้เห็นว่าการ--tagsบังคับใช้อัปเดตแท็กของคุณจากแท็กของรีโมตราวกับว่า refspec อ่าน+refs/tags/*:refs/tags/*นี่อาจเป็นพฤติกรรมที่แตกต่างจาก Git รุ่นก่อนหน้า)

โปรดทราบว่าไม่มีการเปลี่ยนชื่อที่นี่: หากรีโมตoriginมีแท็กxyzzyและคุณไม่และgit fetch origin "refs/tags/*:refs/tags/*"คุณจะrefs/tags/xyzzyถูกเพิ่มในที่เก็บข้อมูลของคุณ (ชี้ไปที่การคอมมิชชันเดียวกันกับรีโมต) ถ้าคุณใช้+refs/tags/*:refs/tags/*แล้วแท็กของคุณxyzzyถ้าคุณมีหนึ่งจะถูกแทนที่originโดยหนึ่งจาก นั่นคือการ+ตั้งค่าสถานะกองทัพใน refspec หมายถึง "แทนที่ค่าอ้างอิงของฉันด้วยหนึ่ง Git ของฉันได้รับจาก Git ของพวกเขา"

แท็ก Automagic ระหว่างการดึงข้อมูล

ด้วยเหตุผลทางประวัติศาสตร์3หากคุณไม่ใช้--tagsตัวเลือกหรือ--no-tagsตัวเลือกให้git fetchดำเนินการพิเศษ โปรดจำไว้ว่าเราได้กล่าวไว้ข้างต้นว่ารีโมทเริ่มต้นด้วยการแสดงการอ้างอิงทั้งหมดของ Git ในท้องถิ่นของคุณไม่ว่า Git ในท้องถิ่นของคุณต้องการเห็นพวกเขาหรือไม่ 4 Git ของคุณจดบันทึกแท็กทั้งหมดที่เห็นในตอนนี้ จากนั้นเมื่อเริ่มต้นการดาวน์โหลดออบเจ็กต์การส่งมอบใด ๆ มันจะต้องจัดการกับสิ่งที่กำลังดึงหากหนึ่งในการกระทำเหล่านั้นมี ID เหมือนกับแท็กเหล่านั้น git จะเพิ่มแท็กนั้นหรือแท็กเหล่านั้นหากมีหลายแท็กนั้น พื้นที่เก็บข้อมูลของคุณ

แก้ไขมกราคม 2017: การทดสอบแสดงให้เห็นว่าพฤติกรรมใน Git 2.10 อยู่ในขณะนี้: ถ้า Git ของพวกเขาให้แท็กชื่อT , และคุณไม่ต้องแท็กชื่อT , และกระทำ ID ที่เกี่ยวข้องกับTเป็นบรรพบุรุษของหนึ่งในสาขาของพวกเขา เมื่อคุณgit fetchตรวจสอบ Git ของคุณจะเพิ่มTในแท็กของคุณไม่--tagsว่าจะมีหรือไม่มี การเพิ่ม--tagsทำให้ Git ของคุณได้รับแท็กทั้งหมดและบังคับให้อัปเดต

บรรทัดล่าง

คุณอาจต้องใช้git fetch --tagsเพื่อรับแท็กของพวกเขา หากชื่อแท็กของพวกเขาขัดแย้งกับชื่อแท็กที่มีอยู่คุณอาจ (ขึ้นอยู่กับเวอร์ชัน Git) แม้จะต้องลบ (หรือเปลี่ยนชื่อ) แท็กบางส่วนของคุณแล้วเรียกใช้git fetch --tagsเพื่อรับแท็ก เนื่องจากแท็กซึ่งแตกต่างจากสาขาระยะไกลจึงไม่มีการเปลี่ยนชื่อโดยอัตโนมัติชื่อแท็กของคุณจะต้องตรงกับชื่อแท็กซึ่งเป็นสาเหตุที่คุณมีปัญหากับข้อขัดแย้ง

ในกรณีปกติส่วนใหญ่จะมีการดำเนินการอย่างง่ายgit fetchการนำการคอมมิชชันและแท็กที่จับคู่มาและเมื่อพวกเขา - ไม่ว่าพวกเขาจะเป็นแท็กจะทำในเวลาที่พวกเขาเผยแพร่คอมมิชชันคุณจะต้องติดตามแท็กของพวกเขา หากคุณไม่สร้างแท็กของคุณเองหรือผสมที่เก็บและที่เก็บอื่น ๆ (ผ่านรีโมตหลายตัว) คุณจะไม่มีชื่อแท็กชนกันดังนั้นคุณจะไม่ต้องยุ่งยากกับการลบหรือเปลี่ยนชื่อแท็กเพื่อ รับแท็กของพวกเขา

เมื่อคุณต้องการชื่อที่ผ่านการรับรอง

ผมกล่าวข้างต้นที่คุณสามารถละเว้นrefs/เกือบตลอดเวลาและrefs/heads/และrefs/tags/และอื่น ๆ ส่วนใหญ่ของเวลา แต่เมื่อไม่สามารถคุณ?

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

git rev-parse xyzzy

จะให้ ID ที่จุดแท็ก อย่างไรก็ตาม - และนี่คือสิ่งที่ขาดหายไปgitrevisions- git checkoutชอบชื่อสาขาดังนั้นgit checkout xyzzyจะนำคุณไปที่สาขาโดยไม่คำนึงถึงแท็ก

ในกรณีที่มีความคลุมเครือคุณมักจะสามารถสะกดออกชื่อเตะใช้ชื่อเต็มของมันหรือrefs/heads/xyzzy refs/tags/xyzzy(โปรดทราบว่าวิธีนี้ใช้งานได้git checkoutแต่อาจเป็นไปในลักษณะที่ไม่คาดคิด: git checkout refs/heads/xyzzyเป็นสาเหตุของการชำระเงินแบบถอดหัวแทนที่จะชำระเงินสาขานี่คือสาเหตุที่คุณต้องทราบว่าgit checkoutจะใช้ชื่อย่อเป็นชื่อสาขาก่อนนั่นคือวิธีที่คุณ ตรวจสอบสาขาxyzzyแม้ว่ามีแท็กxyzzyอยู่หากคุณต้องการตรวจสอบแท็กคุณสามารถใช้refs/tags/xyzzy)

เนื่องจาก (เป็นgitrevisionsบันทึกย่อ) Git จะพยายามคุณสามารถเขียนเพื่อระบุการกระทำที่ติดแท็กได้ (ถ้ามีคนที่มีการจัดการที่จะเขียนอ้างอิงที่ถูกต้องชื่อเข้าแต่นี้จะแก้ไขเป็น. แต่ปกติต่าง ๆชื่อควรจะอยู่ใน.)refs/nametags/xyzzyxyzzyxyzzy$GIT_DIR$GIT_DIR/xyzzy*HEAD$GIT_DIR


1โอเคโอเค "ไม่ใช่แค่อวดความสามารถ" :-)

2บางคนก็พูดว่า "ไม่ค่อยเป็นประโยชน์" และฉันก็มักจะเห็นด้วย

3โดยทั่วไปgit fetchและแนวคิดทั้งหมดของรีโมตและผู้อ้างอิงเป็นเรื่องที่ค่อนข้างช้านอกเหนือจาก Git ซึ่งเกิดขึ้นในช่วงเวลาของ Git 1.5 ก่อนหน้านี้มีเพียงกรณีพิเศษแบบเฉพาะกิจและการดึงแท็กเป็นหนึ่งในนั้นจึงได้รับรหัสผ่านด้วยรหัสพิเศษ

4ถ้ามันช่วยได้ให้คิดว่า Git จากระยะไกลเป็นตัวกะพริบในความหมายของคำสแลง


เขียนดีมาก หนึ่งนิดหน่อยตัวเล็ก ๆ : git fetchจะดึงแท็กของรีโมตเท่านั้นที่ได้รับ--tagsARG
สัปดาห์

@cweekly: ลักษณะการทำงานของ--tags, --no-tagsและเริ่มต้นเป็นจริงค่อนข้างยุ่งยาก ค่าเริ่มต้นคือการนำแท็กที่คุณไม่มีซึ่งอยู่ในข้อผูกมัดที่คุณนำเข้ามา (ดูการแก้ไขมกราคม 2017) แต่ก็มีข้อบกพร่องที่นี่เช่นกันและ Git สมัยใหม่ก็มี - แท็ก / - ไม่มีการแก้ไขรหัสการจัดการแท็กอีกครั้งซึ่งอาจนำไปสู่กรณีมุมพิเศษเพิ่มเติม
torek

1

เพื่อชำระเงินแท็ก git คุณจะดำเนินการคำสั่งต่อไปนี้

git checkout tags/tag-name -b branch-name

เช่นที่ระบุไว้ด้านล่าง

 git checkout tags/v1.0 -b v1.0-branch

เพื่อดึงแท็กทั้งหมดใช้คำสั่ง

git fetch --all --tags

0

ในการรับรหัสแท็กเฉพาะลองสร้างสาขาใหม่เพิ่มรับรหัสแท็ก ฉันได้ทำตามคำสั่ง:$git checkout -b newBranchName tagName

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