Topic 3: Gitlab with troubleshooting

1. กรณีที่ต่างคนต่างทำงานแต่เป็นไฟล์เดียวกัน ซึ่งเขียนคนละ function กัน เมื่อมีคนหนึ่ง commit ไฟล์และ push แต่เมื่อคนอื่น ๆ จะ Push ไม่สามารถ push ได้

ถ้าหากเกิด Conflict คนอื่น ๆ จะไม่สามารถ push ได้ เพราะ source code เกิดการชนกันหรือทับซ้อน วิธีแก้คือ
1. จะต้องใช้คำสั่ง Pull เพื่อ Remote ลงมาใหม่
2. แก้ไข source code ให้สามารถใช้งานหรือรวมกันได้ ภายใต้เครื่องหมายกำกับแยกไว้ เช่น
- โค้ดที่อยู่ระหว่าง <<< และ === คือโค้ดของคนแรก
- โค้ดที่อยู่ระหว่าง === และ >>> คือโค้ดของคนอื่น ๆ
- ตัวเลขต่อท้ายคือหมายเลขของ Commit ที่ทำการ Merge
3.         จากนั้นให้ Commit จากนั้นจะสามารถ Push ขึ้นใหม่ได้  เมื่อเสร็จแล้วให้ Commit คนแรกจะสามารถ Push ขึ้น
Remote ได้ ส่วนคนอื่น ๆ จะต้อง Pull Commit ตัวนี้ทีหลัง
ข้อควรระวัง: ถ้าเผลอไปแก้ไขอะไรที่เดิมซ้ำอาจทำให้เกิด Conflict อีกครั้ง

2.          2.  การแสดงรายละเอียดของการแก้ไขไฟล์ต่าง ๆ แบบล่าสุด

- ใช้คำสั่ง git log –oneline ซึ่งจะบรรทัดเดียวของแต่ละเหตุการณ์ Commit
- จากนั้นใช้คำสั่ง git diff ตามด้วย Commit เพื่อตรวจสอบการเปลี่ยนแปลงที่เกิดขึ้นใน Commit นั้น
หมายเหตุ: สีแดงจะเป็นส่วนที่ถูกลบออกไป ส่วนสีเขียวจะเป็นส่วนที่ถูดเขียนขึ้นมาใหม่


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

3.    การแสดงรายละเอียดของผู้ที่แก้ไขไฟล์

- ใช้คำสั่ง git log จะแสดงรายละเอียดของผู้ที่แก้ไขไฟล์ พร้อมกับวันและเวลาที่แก้ไข


- อาจใช้คำสั่ง git log –oneline ซึ่งจะบรรทัดเดียวของแต่ละเหตุการณ์ Commit

4.          ย้อนกลับเหตุการณ์ทั้งหมดไปก่อนหน้านี้
 

- ใช้คำสั่ง git log –oneline เพื่อแสดงประวัติของการ Commit ที่เก็บไว้ใน Repository ทั้งหมด
- จากนั้นใชคำสั่ง git reset -–hard ตามด้วย Commit ที่ต้องการย้อนกลับไปที่การเปลี่ยนแปลงแบบลบทับการเปลี่ยนแปลงก่อนหน้าทั้งหมด
- จะได้ไฟล์ที่ลบไปกลับคืนมา

     5. กู้ไฟล์ที่ลบกลับมา

ใช้ git log เพื่อดูเหตุการณ์ที่ยังมีไฟล์ที่ต้องการจะกู้คืน
git checkout <commit id> <file> เพื่อกู้ไฟล์จาก commit ที่ระบุ

      6. การสร้าง branch แยกออกจาก master แล้วค่อยนำมารวมกัน

- ใช้คำสั่ง git branch ตามด้วยชื่อที่ต้องการ
- ตรวจสอบ Branch ที่ถูกสร้างขึ้นด้วยคำสั่ง git branch
- จากนั้นย้ายการทำงานไปที่ Branch ที่ถูกสร้างขึ้นมา โดยใช้คำสั่ง git checkout ตามด้วยชื่อของ Branch
- ใน Branch ใหม่นี้ สามารถสร้างหรือทดสอบไฟล์ต่าง ๆ ได้ก่อนนำไปรวมใน Branch ที่เป็น master
- จากนั้นนำไฟล์ที่ถูกสร้างขึ้นใหม่ใน Branch นี้ไปรวมกับ Branch ที่เป็น master ใช้คำสั่ง git checkout master เพื่อย้ายการทำงานไปที่ master
ใช้คำสั่ง git merge ตามด้วยชื่อ Branch เพื่อรวมไฟล์เข้าด้วยกัน

7.การอัพบางไฟล์ที่แก้ไข ไม่ต้องอัพทั้งหมด
ใช้คำสั่ง git add ตามด้วยไฟล์ที่ต้องการ จากนั้นสามารถตรวจสอบได้ใน Gitlab


ความคิดเห็น