เชื่อว่ามือใหม่อย่างเราๆคงเคยเจอสถานการณ์ที่ว่า ลืมตั้งค่าให้ git มัน ignore ไฟล์ config ที่สำคัญๆต่างๆ (เช่น config ของ firebase ในไฟล์ environment.ts) ทำให้เผลอ commit มันขึ้นไปโดยไม่ได้ตั้งใจ
ไม่ต้องตกใจ เรามีทางออก!!!
*ในกรณีนี้เข้าใจว่าต้องยังไม่ push ขึ้น git เท่านั้น
**คำสั่งชุดนี้เสมือนการลบไฟล์ออกจาก git โดยเมื่อเรารันคำสั่งนี้แล้ว ไฟล์ที่เรารันด้วยคำสั่งด้านล่างจะหายไปจาก git ทันที (แต่ history กับไฟล์บน local ยังอยู่นะ) ก็อาจจะต้อง add ไฟล์ขึ้นบน git ใหม่อีกรอบ (ถ้าต้องการ)
มาดูกันว่าเราต้องทำอะไรบ้าง
- เปิด Git Bash ขึ้นมา
- cd ไปยังโฟลเดอร์ของไฟล์ที่คุณต้องการ undo commit
- รันคำสั่ง
git rm –cached giant_file // แทนที่คำว่า giant_file ด้วยชื่อไฟล์ เช่น environment.ts
git commit –amend -CHEAD // แก้ไข commit ล่าสุด
git push // push โลดดด
เพียงเท่านี้ ไฟล์ที่ถูกคำสั่ง rm –cached ก็จะไม่ถูก push ขึ้นไปในรอบนั้นๆแล้ว สบายใจได้ ^ ^