[Git] .gitignore



อาจจะมีบางไฟล์ที่เราไม่จำเป็น หรือไม่ต้องการให้ Git ทำการ Track
เราจะใช้ .gitignore File เพื่อระบุว่าจะไม่ให้ตามไฟล์ไหนบ้าง ...

อาจจะบอกว่า เราแค่เลือกไม่ตามก็ได้นี่ นั่นก็ใช่
แต่การที่เราต้องการเลือกทุกครั้งเวลา add ก็ไม่ใช่เรื่องดีนัก
วิธีการก็คือไปสร้าง .gitignore ไว้ใน working directory ของเราแล้วระบุไปเลยครับ
จากนั้นก็ใช้ git add . ได้ตามปกติโดยไม่ต้องพะวงเรื่องไฟล์ที่เราไม่ต้องการให้มัน track ละ

** จะสังเกตุว่าชื่อไฟล์นั้นจะมี . นำหน้า แปลว่าเป็น hidden file ถ้าเราสั่ง $ ls จะมองไม่เห็น ต้องใส่ $ ls -a บน shell นะครับ ถึงจะเห็นไฟล์นี้ แต่ยังสามารถ access ได้ปกติแม้จะไม่เห็น (เช่น $ cat .gitignore)

ซึ่ง Project ของแต่ละ Framework ก็มีไฟล์ที่ไม่จำเป็นต้อง Track ต่างกันไป
ผมลงที่ผมเขียนประจำก็คือ iOS และ Rails นะ


ส่วนใครจะหา .gitignore ที่ควรใช้ของ Project รูปแบบอื่น
เชิญที่นี่เลย --> https://github.com/github/gitignore


อันนี้สำหรับ iOS Project
โหลดได้ที่นี่เลยครับ --> https://gist.github.com/4475403

อันนี้สำหรับ Rails Project 
โหลดได้ที่นี่เลยครับ --> https://gist.github.com/4475406

คราวนี้ถ้าเราใส่ .gitignore ทีหลังล่ะ ? ปกติ เราควรใส่ก่อนที่จะ Commit แรกด้วยซ้ำนะครับ
แต่ถ้าเกิดเรามาใส่ทีหลัง แล้ว git ตามไฟล์นั้นอยู่แล้ว จะทำให้ครั้งต่อมา จะไม่สามารถ commit ไฟล์นั้นได้ เพราะการ parse .gitignore แล้วพบว่าไฟล์นั้นไม่ถูกอนุญาติให้ stage แล้ว

เช่นไฟล์ UserInterfaceState.xcuserstate บน Xcode เวลาเขียน iOS เป็นต้น
วิธีแก้คือ "ไปลบ stage cached ของมันซะ" โดยทำดังนี้

$ git rm --cached ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState.xcuserstate 

$ git commit -m "Removed file that shouldn't be tracked"
เท่านี้ก็เรียบร้อย :)

Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

5 TED Talk ที่จะช่วยให้คุณทำงานดีขึ้น