เก็บอะไรกันไว้ใน Version Control บ้าง

Kawee Lertrungmongkol
1 min readJan 22, 2018

--

Version Control System ระบบควมคุม version ทำหน้าเก็บ บันทึกการเปลี่ยนแปลงของอะไรก็ตามที่ถูกเก็บไว้ ช่วยให้เราสามารถ rollback ไปตอนไหนก็ได้ ไม่ต้องทำ version เป็น folder เหมือนแต่ก่อน Version Control ที่ยังเห็นอยู่ในปัจจุบันเรารู้จักมีอยู่ 2 แบบ แยกด้วยวิธีการทำงาน

  1. Distributed[Github,Gitlab,Bitbucket]
  2. Centralized[SVN]

ไม่ว่าจะทำงานแบบไหน หน้าที่หลักๆของมันก็คือ เก็บ Soruce Code ไม่ได้มีอะไรซับซ้อน ถึงจะพูดแบบนั้นหลายครั้งก็มีบางสิ่งที่ไม่ควรอยู่บน Version Control(มีปัญหาชีวิตทุกครั้งที่พบเจอ) มันคืออะไรนะ มาดูกันหน่อย

สิ่งที่ไม่ควรเก็บไว้ใน Version Control

  1. IDE Configuration เช่น .setting .classpath .project ถ้าเอาขึ้นทีมเตรียมตัวรับมือกับหายนะครั้งใหญ่ได้เลย ทุกคนที่ Checkout code หรือ Pull code ไปต้องมานั่ง Configuration IDE ใหม่ ซึ่งไม่สนุกแน่นอน(คนที่เอาขึ้นเท่านั้นที่จะปลอดภัย I’m The One) เราเคยสงสัยและได้รับคำตอบว่า เราต้องยอมรับมัน!! ให้ตายเถอะ
  2. OS Configuration เช่น .DS_Store บน Mac เป็นต้น
  3. Compiled class file เช่น *.class (เก็บไว้ก็ดูไม่รู้เรื่อง ถ้าไม่ผ่าน Decompiler Tools)
  4. Library เช่น SpringBoot lib , Joda-Time lib เป็นต้น (ถ้ามีพื้นที่เยอะๆก็ไม่มีปัญหานะ ปกติแล้วจะทำเป็น folder shared library เอาไว้ แต่ก็มีข้อยกเว้นสำหรับ Custom library ที่พัฒนาขึ้นมาใช้เอง)
  5. Package files เช่น *.jar*.war*.ear*.zip*.tar.gz*.rar เป็นต้น(ไม่จำเป็นต้องเอาขึ้นเพราะทุกครั้งที่ Build เราจะได้มาอยู่แล้ว)
  6. Log files เช่น *.log(เหมือนข้อ 4 เพิ่มเติมเผื่ออยากจะ Track หา Exception)

นอกจาก 6 ข้อนี้ยังมีพวก file binary ต่างๆเช่น *.doc , *.xls เป็นต้น สามารถเก็บไว้ได้ สามารถ rollback ได้ปกติ แต่จะไม่สามารถ Compare ไฟล์ได้(ไม่เห็น diff ของไฟล์) เพียงแค่ทำ ignore ไฟล์เท่านี้ปัญหาพวกนี้ก็จะไม่กวนใจเราอีกต่อไป หวังว่าจะเป็นประโยชน์บ้างนะครับ จุ๊ฟๆ

--

--

No responses yet