โอ้ชิท, Git? หนังสือออกแล้ว
(ohshitgit.com)-
วิธีแก้ปัญหา Git
- เน้นว่า Git เป็นเครื่องมือที่ซับซ้อนและผิดพลาดได้ง่าย ทำให้การหาวิธีแก้ปัญหาเป็นเรื่องยาก
- อธิบายสถานการณ์ปัญหาหลากหลายแบบและวิธีแก้ด้วยภาษาอังกฤษที่เรียบง่าย
-
สถานการณ์ปัญหาและวิธีแก้
-
เมื่ออยากย้อนงานที่ทำพลาด
- ใช้
git reflogเพื่อตรวจดูรายการงานก่อนหน้า แล้วใช้git reset HEAD@{index}เพื่อย้อนกลับไปยังจุดที่ต้องการ
- ใช้
-
เมื่อจำเป็นต้องแก้ไขเล็กน้อยหลัง commit
- หลังแก้ไขแล้ว ใช้
git add .และgit commit --amend --no-editเพื่อเพิ่มการเปลี่ยนแปลงเข้าไปใน commit ล่าสุด - ข้อควรระวัง: อย่าแก้ไข commit ที่เผยแพร่ไปแล้ว
- หลังแก้ไขแล้ว ใช้
-
เมื่ออยากเปลี่ยนข้อความของ commit ล่าสุด
- ใช้
git commit --amendเพื่อเปลี่ยนข้อความ
- ใช้
-
เมื่อ commit ลง branch ผิด
- สร้าง branch ใหม่ แล้วใช้
git reset HEAD~ --hardเพื่อลบ commit ออกจาก master branch จากนั้นย้ายไปยัง branch ใหม่เพื่อเก็บ commit ไว้
- สร้าง branch ใหม่ แล้วใช้
-
เมื่อคำสั่ง diff ไม่ทำงาน
- ใช้
git diff --stagedเพื่อตรวจสอบความแตกต่างของไฟล์ที่ถูก staged ไว้
- ใช้
-
เมื่ออยากย้อน commit ก่อนหน้า
- หา commit ด้วย
git logแล้วใช้git revert [saved hash]เพื่อย้อน commit นั้น
- หา commit ด้วย
-
เมื่ออยากย้อนการเปลี่ยนแปลงของไฟล์
- หา commit ก่อนหน้าด้วย
git logแล้วใช้git checkout [saved hash] -- path/to/fileเพื่อย้อนไฟล์กลับ
- หา commit ก่อนหน้าด้วย
-
-
อื่น ๆ
- เมื่ออยากรีเซ็ต repository กลับสู่สถานะเริ่มต้น
- ใช้
git fetch origin,git checkout master,git reset --hard origin/masterเพื่อซิงก์กับ remote repository - ใช้
git clean -d --forceเพื่อลบไฟล์และไดเรกทอรีที่ไม่ได้ถูกติดตาม
- ใช้
- เมื่ออยากรีเซ็ต repository กลับสู่สถานะเริ่มต้น
-
ข้อควรระวัง
- มีการระบุว่าเว็บไซต์นี้ไม่ใช่เอกสารอ้างอิงแบบครอบคลุม และอาจมีวิธีอื่นอีกหลายแบบ
- กล่าวขอบคุณผู้คนหลายคนที่มีส่วนร่วมในการแปล
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
git switchแทนgit checkoutreset --hardและแก้ปัญหาเมื่อเผลอคอมมิตลงผิดบรานช์ด้วยการสร้างบรานช์ใหม่cherry-pickเพื่อแก้กรณีคอมมิตลงผิดบรานช์git reflogได้ยาก เพราะเผลออ่านเป็น "re-flog"