หน้าเว็บ

แสดงบทความที่มีป้ายกำกับ git แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ git แสดงบทความทั้งหมด

วันจันทร์ที่ 31 มีนาคม พ.ศ. 2557

fatal index file smaller than expected : git



วันนี้เขียน code ไปได้สักพักนึง  กำลังจะ commit  ก็ดัน commit ไม่ได้ซ่ะงั้น
ผมใช้ netbeans ครับ แต่ netbeans มันไม่ได้ show ว่าเกิดจากสาเหตุอะไร

ผมเลยใช้ command line เข้าไปที่ project นั้น แล้วพิมพ์ > git status  ปรากฏว่า  มันมีข้อความแจ้งเตือนขึ้นมาดังนี้

fatal index file smaller than expected

        ผมเลยลองค้นหาใน google ดู  ไปเจอคนตอบใน stack overflow ว่าเป็นเพราะ file .git/index ของเราพังครับ (น่าจะเป็นที่ hardisk ของผมมีปัญหาเองแหล่ะ เพราะลองเปิดดู  ชื่อ file index มันเป็น ภาษาต่างดาวอะไรก็ไม่รู้)

วิธีแก้

1. ทำการลบ file index นั้นทิ้งไปครับ
2. ทำการ reset ระบบ (git) ใหม่  แค่นี้ก็ใช้งานได้แล้วครับ


คำสั่ง reset ครับ
> git reset HEAD .

ที่มา http://stackoverflow.com/questions/10076036/index-file-smaller-than-expected
ที่มาของภาพประกอบ : http://www.businessinsider.com/goldman-knight-capital-trading-errors-2013-8#!CiwjK

วันอังคารที่ 25 มีนาคม พ.ศ. 2557

แก้ปัญหา detached head : git



        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

วันอาทิตย์ที่ 22 ธันวาคม พ.ศ. 2556

Git Command

Merge branch
> git branch  # list all branches
> git checkout master
> git merge <TARGET_BRANCH>
Delete branch
> git branch -d <LOCAL_BRANCH> #delete local branch
> git push origin :<REMOTH_BRANCH> #delete remote branch