detached head คือ ปัญหาที่เกิดจากการพยายาม commit code เก่าที่เรา checkout revision มาแก้ไข แล้วต้องการ push กลับไปที่เดิม แต่ push ไม่ได้
* เนื่องจาก head state ของการ push ชี้ไปที่ state อื่นแล้ว
วิธีแก้
ในขณะที่ project อยู่ในสถานะ detached head และเราก็ได้แก้ code เสร็จแล้ว
ให้ทำดังต่อไปนี้ เพื่อ merge เข้ากับ branch หลักหรือ master
(ตัวที่เรา checkout มาจะไม่มี branch หรือ no-branch)
1. ทำให้ project นั้นมี branch ก่อน เพราะ branch ตอนนั้นคือ [no branch]
> git checkout -b newBranch #สร้าง branchตอนนี้ project มี branch แล้ว ชื่อ 'newBranch'
2. commit code
> git commit -m "YOU_COMMENT"
3. จากนั้นย้ายไปที่ master แล้วดึง master กลับมา
> git checkout master #ย้าย branch > git pull origin master #ดึงมา
4. ทำการ merge เข้ากับ branch ที่เราพึ่งสร้างไปครับ
> git merge newBranch
5. แค่นี้ ก็เป็นอันเสร็จเรียบร้อยแล้ว
ถ้า branch นั้นไม่ได้ใช้อะไรต่อ ก็ลบออกก็ได้ครับ
> git branch -d BRANCH_NAME #เช่น newBranch
ขอบคุณมากนะคะ :) เป็นประโยชน์มากจริงๆ
ตอบลบยินดีครับ ^^
ลบ