N

Nokfa Docs

ไม่มีชื่อบทความ

image info จากภาพที่น้อง dev ส่งมาและที่คุณเล่า สิ่งที่น่าจะเป็นสาเหตุหลักคือ ปัญหาเรื่องระบบไฟล์ของ Windows + OneDrive กับ path ที่มีชื่อไฟล์เป็นภาษาไทยและยาวเกินไป โดยเฉพาะเมื่อน้องใช้ Git Bash ผ่าน MINGW64 บน Windows

สาเหตุที่เป็นไปได้:

  1. ชื่อไฟล์ภาษาไทยที่ยาวเกินไป: Windows มีข้อจำกัดของ path length (260 ตัวอักษร โดยดีฟอลต์) ซึ่งพอเจอชื่อไฟล์ภาษาไทย + โฟลเดอร์ยาว ๆ อาจทะลุขีดจำกัด
  2. OneDrive sync: ไฟล์ใน OneDrive บางทีกำลัง sync หรือเป็นไฟล์ที่ยังไม่ดาวน์โหลดลงเครื่องเต็มที่ (On-demand file) ก็ทำให้ Git มองว่า path นั้น “invalid”
  3. Git config locale/encoding: ถ้า Git ไม่ได้ตั้ง encoding ให้รองรับ UTF-8 อาจเจอปัญหากับชื่อไฟล์ภาษาไทยได้
  4. ระบบไฟล์ไม่รองรับบางตัวอักษร: โดยเฉพาะถ้าเก็บ repo ไว้ใน path ที่ไม่ได้อยู่บน NTFS

วิธีแก้หรือให้ dev ลองทำ:

  1. ย้าย repo ออกจาก OneDrive folder:

    cd ~
    mkdir test-cms
    cd test-cms
    git clone <repo-url>
    git switch cms
    

    ให้ลอง clone repo ที่ path ปกติไม่ใช่ใน OneDrive (อย่างในภาพคืออยู่ใน ~/OneDrive/Desktop/...)

  2. เปิด Long Path Support (ถ้ายังไม่ได้เปิด):

    • เปิด Registry Editor แล้วไปที่:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
      
    • แก้ค่า LongPathsEnabled เป็น 1
  3. ตั้ง Git ให้ใช้ UTF-8:

    git config --global core.precomposeUnicode true
    git config --global i18n.commitEncoding utf-8
    git config --global i18n.logOutputEncoding utf-8
    
  4. ให้ dev ใช้ Git ผ่าน VS Code Terminal หรือ Git for Windows ที่ path สั้นและไม่อยู่ใน OneDrive เพื่อทดสอบดูว่าเกี่ยวกับ environment ไหม


ถ้า dev ย้าย repo ออกมาจาก OneDrive แล้วยังเจอปัญหาอยู่ ลองให้เขาส่ง output ของคำสั่งนี้มาด้วย:

git status
chcp

จะได้เห็นว่า encoding ของ shell เป็นอะไร และไฟล์มีสถานะอะไรผิดปกติไหม

ให้ลองแล้วแจ้งผลมาได้นะ เดี๋ยวช่วยดูต่อจ้ะ