ฉันรู้วิธีเปลี่ยนกลับไปใช้คอมมิทรุ่นเก่าในสาขา Git แต่ฉันจะเปลี่ยนกลับไปเป็นสถานะของสาขาที่กำหนดโดยแท็กได้อย่างไร ฉันจินตนาการถึงสิ่งนี้:
git revert -bytag "Version 1.0 Revision 1.5"
เป็นไปได้หรือไม่
ฉันรู้วิธีเปลี่ยนกลับไปใช้คอมมิทรุ่นเก่าในสาขา Git แต่ฉันจะเปลี่ยนกลับไปเป็นสถานะของสาขาที่กำหนดโดยแท็กได้อย่างไร ฉันจินตนาการถึงสิ่งนี้:
git revert -bytag "Version 1.0 Revision 1.5"
เป็นไปได้หรือไม่
คำตอบ:
แท็ก Git เป็นเพียงตัวชี้ไปยังการคอมมิต ดังนั้นคุณจึงใช้มันในลักษณะเดียวกับที่คุณทำ HEAD ชื่อสาขาหรือคอมมิต sha แฮช คุณสามารถใช้แท็กกับคำสั่ง git ใด ๆ ที่ยอมรับอาร์กิวเมนต์คอมมิต / แก้ไข คุณสามารถลองใช้git rev-parse tagname
เพื่อแสดงการคอมมิตที่ชี้ไป
ในกรณีของคุณคุณมีทางเลือกอย่างน้อยสองทางนี้:
รีเซ็ตสาขาปัจจุบันเป็นแท็กเฉพาะ:
git reset --hard tagname
สร้างการตอบกลับด้านบนเพื่อให้คุณเข้าสู่สถานะของแท็ก:
git revert tag
สิ่งนี้อาจทำให้เกิดความขัดแย้งหากคุณรวมคอมมิต
คุณสามารถใช้ git checkout
ฉันลองวิธีแก้ปัญหาที่ยอมรับ แต่พบข้อผิดพลาด warning: refname '<tagname>' is ambiguous'
แต่เมื่อคำตอบระบุแท็กจะทำงานเหมือนตัวชี้ไปยังการคอมมิตดังนั้นคุณสามารถเช็คเอาต์แท็กได้เช่นเดียวกับที่คุณทำกับแฮชคอมมิต ความแตกต่างเพียงอย่างเดียวคือคุณนำหน้าด้วยtags/
:
git checkout tags/<tagname>