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










ความคิดเห็น
แสดงความคิดเห็น