ทำความเข้าใจและแก้ไขปัญหา Git Detached Head

Thakhwam Kheaci Laea Kaekhi Payha Git Detached Head



ใน Git Bash นั้น HEAD คือสาขาที่นักพัฒนาทำงาน ในฐานะผู้ใช้ Git Bash มืออาชีพ คุณอาจเคยได้ยินเกี่ยวกับสถานะ HEAD ที่แยกออกมา ผู้ใช้บางคนพบว่าเงื่อนไขนี้น่าตกใจจริงๆ เพียงหมายความว่า HEAD ของคุณชี้ไปที่การคอมมิตเฉพาะแทนที่จะเป็นสาขา

คู่มือนี้ประกอบด้วยเนื้อหาเกี่ยวกับความเข้าใจอย่างลึกซึ้งเกี่ยวกับสถานะ HEAD เดี่ยวปกติ และวิธีแก้ปัญหาสำหรับการแก้ไข HEAD เดี่ยว รวมถึงเนื้อหาต่อไปนี้:

สถานะ HEAD ปกติใน Git คืออะไร?

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







ขั้นตอนที่ 1: แสดงสถานะบันทึก
เปิด Git Bash และแสดงบันทึกของโครงการโดยใช้ไฟล์ “บันทึกคอมไพล์” สั่งการ:



บันทึกคอมไพล์



ขณะนี้ HEAD ของเรากำลังชี้ไปที่ “ ผู้เชี่ยวชาญ ' สาขา.





ขั้นตอนที่ 2: สลับสาขา
ตอนนี้ สลับไปยังสาขาท้องถิ่นอื่น แล้วตรวจสอบตำแหน่งตัวชี้ HEAD ตัวอย่างเช่น เรากำลังตรวจสอบไปที่ “ คุณสมบัติ ' สาขา:

คอมไพล์ชำระเงิน คุณสมบัติ



ได้เปลี่ยนสาขาเป็น “ คุณสมบัติ '.

ขั้นตอนที่ 3: ตรวจสอบบันทึก
ดูสถานะบันทึกของที่เก็บอีกครั้งและตรวจสอบสถานะ HEAD เพื่อตรวจสอบ:

บันทึกคอมไพล์

ตามผลลัพธ์ต่อไปนี้ HEAD ของเรากำลังชี้ไปที่สาขา 'คุณลักษณะ':

นี่คือสถานการณ์ HEAD ปกติใน Git Bash

รัฐหัวเดี่ยวหมายถึงอะไร?

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

ขั้นตอนที่ 1: ตรวจสอบสถานะหัวหน้า
ขั้นแรก แสดงบันทึกเพื่อดูสถานะ HEAD โดยการรันคำสั่งนี้ใน Git Bash:

บันทึกคอมไพล์ --ออนไลน์

ปัจจุบัน HEAD กำลังชี้ไปที่ “ คุณสมบัติ ' สาขา.

ขั้นตอนที่ 2: ชำระเงินคอมมิต
มาเปลี่ยน HEAD เป็นการคอมมิตล่าสุดโดยใช้คำสั่งต่อไปนี้พร้อมกับแฮช SHA:

คอมไพล์ชำระเงิน b8d840c

คุณจะเห็นว่าสถานะ HEAD ที่แยกออกมาปรากฏขึ้นเมื่อสลับไปที่การคอมมิตแทนที่จะเป็นสาขา

ขั้นตอนที่ 3: ตรวจสอบสถานะหัวหน้าอีกครั้ง
ตอนนี้ หากคุณแสดงบันทึกเพื่อตรวจสอบสถานะ HEAD คุณจะเห็นว่ามันชี้ไปที่การคอมมิต:

บันทึกคอมไพล์ --ออนไลน์

นี่คือสถานะ HEAD เดี่ยวของ Git

สถานการณ์ใดที่สร้างสถานะ HEAD เดี่ยว

มีสองสถานการณ์ที่สามารถมองเห็นสถานะ HEAD ที่แยกออกได้ โปรดดูตารางด้านล่าง:

สถานการณ์ที่ 1 เมื่อผู้ใช้สลับไปใช้แฮช SHA แทนสาขา
สถานการณ์ที่ 2 เมื่อผู้ใช้สลับไปที่สาขาระยะไกลก่อนที่จะดึงข้อมูล

จะแก้ไขปัญหา Git-Detached HEAD ได้อย่างไร

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

ขั้นตอนที่ 1: สร้างสาขาใหม่
ขั้นแรก สร้างสาขาใหม่ผ่านทาง “สาขาคอมไพล์” สั่งการ:

สาขาคอมไพล์ ใหม่

ขั้นตอนที่ 2: สลับไปที่สาขาที่สร้างขึ้น
หลังจากนั้นให้เปลี่ยนไปใช้ผ่าน “สวิตช์คอมไพล์” สั่งพิมพ์ชื่อสาขา:

คอมไพล์ เปลี่ยนใหม่

ขั้นตอนที่ 3: ยอมรับการเปลี่ยนแปลง
ยอมรับการเปลี่ยนแปลงที่ใช้และระบุข้อความโดยใช้ “ แท็ก”:

คอมไพล์กระทำ -ม 'ย้ายสาขา'

ขั้นตอนที่ 4: ตรวจสอบบันทึก
ตอนนี้ ตรวจสอบสถานะของ HEAD โดยแสดงบันทึก:

บันทึกคอมไพล์

นี่คือวิธีที่คุณสามารถแก้ไขสถานะ HEAD ที่แยกออกมา

บทสรุป

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