13 ม.ค. เวลา 14:20 • การศึกษา
IT Why

ทำไมไม่ควรลากไฟล์วางบน GitHub?

โดย
ในยุคที่ GitHub กลายเป็นศูนย์กลางของการพัฒนาซอฟต์แวร์ หลายคนอาจเริ่มใช้งานด้วยความคุ้นเคยเหมือนการใช้บริการ Cloud Storage ทั่วไป เช่น Google Drive หรือ Dropbox โดยการอัปโหลดไฟล์ผ่านเว็บเบราว์เซอร์ตรงๆ (Drag & Drop) แม้วิธีนี้จะดูรวดเร็วในช่วงแรก แต่สำหรับการทำงานจริงที่มีความซับซ้อน และ ต้องเน้นความปลอดภัย วิธีนี้มี "กับดัก" มหาศาลที่อาจส่งผลเสียร้ายแรงต่อโปรเจกต์ และ ตัวคุณเอง
1
บทความนี้จะสรุปเหตุผลสำคัญที่คุณควรเลิกโยนไฟล์ใส่ GitHub โดยตรง และ หันมาใช้เครื่องมือควบคุมเวอร์ชัน (Version Control) อย่าง Git หรือ GitHub Desktop แทน
  • ​1) ในด้านความปลอดภัย 🛡️
นี่คือเหตุผลที่สำคัญที่สุด เพราะการอัปโหลดผ่านหน้าเว็บโดยตรงมักทำให้เราขาดการคัดกรองไฟล์ที่ไม่ควรถูกเปิดเผยต่อสาธารณะ
- ความเสี่ยงจากการเผลอหลุด API Keys และ รหัสผ่าน โดยปกติแล้วในโฟลเดอร์งานมักมีไฟล์เก็บความลับ เช่น .env , config.json หรือ ไฟล์ Keys ต่างๆ การลากโฟลเดอร์โยนใส่เว็บโดยตรงอาจทำให้ไฟล์เหล่านี้ติดไปด้วย และ หาก Repository ของคุณเป็นแบบ Public ข้อมูลเหล่านี้จะถูก Bot ดูดไปใช้ได้ภายในไม่กี่วินาที
2
- ไฟล์ขยะและไฟล์ที่ไม่จำเป็น
ไฟล์อย่าง node_modules , .DS_Store หรือ ไฟล์ชั่วคราวอื่นๆ มักถูกอัปโหลดขึ้นไปด้วย ทำให้ Repo รก และ บวมเกินจำเป็น
- ความเสียหายถาวร
เมื่อไฟล์ความลับถูก Commit เข้าสู่ระบบไปแล้ว ถึงแม้คุณจะลบไฟล์ออกในภายหลัง แต่มันยังคงฝังอยู่ใน "History" ของโปรเจกต์ ซึ่งใครก็สามารถย้อนดูได้
  • ​2) ด้านประสิทธิภาพของงาน 🥲
1) ขาดการติดตามประวัติการเปลี่ยนแปลง (No Change History) การอัปโหลดตรงๆ จะทำได้เพียงบันทึกภาพรวม แต่ Git จะช่วยให้เห็นละเอียดถึงระดับบรรทัดว่า "ใคร แก้ไขอะไร เมื่อไหร่ และ ทำไม" ซึ่งจำเป็นมากในการตรวจสอบบั๊ก
2) เสี่ยงต่อการเขียนทับไฟล์ (Risk of Overwriting)
เมื่อทำงานเป็นทีม หากสองคนอัปโหลดไฟล์เดียวกันทับกันไปมา โค้ดที่เพื่อนเขียนไว้อาจหายไปทันที แต่ Git จะมีระบบ Conflict Resolution เพื่อช่วยตัดสินใจก่อนรวมไฟล์
3) เสียประโยชน์จากการแยกสายงาน (Loss of Branching)
Git ช่วยให้คุณสร้าง Branch เพื่อลองผิดลองถูกได้โดยไม่กระทบโค้ดหลักที่ใช้งานได้จริง (Stable Version)
4) ทำงานออฟไลน์ไม่ได้
หากใช้วิธีโยนผ่านเว็บ คุณต้องมีอินเทอร์เน็ตตลอดเวลา แต่ Git ให้คุณบันทึกงานในเครื่องตัวเองก่อน แล้วค่อยส่งขึ้นคลาวด์ได้เมื่อพร้อม
  • ​3) ทางออกของปัญหา 😎
เมื่อคุณเปลี่ยนมาใช้ Git หรือ GitHub Desktop คุณจะสามารถใช้ฟีเจอร์ที่เรียกว่า .gitignore ได้ ซึ่งเป็นวิธีป้องกันความปลอดภัยที่ดีที่สุด
.gitignore คืออะไร?
คือไฟล์ที่เราใช้บอก Git ว่า "ห้ามเอาไฟล์ชื่อนี้ขึ้น GitHub เด็ดขาด" เช่น เราจะระบุชื่อ .env หรือ โฟลเดอร์รหัสผ่านไว้ในไฟล์นี้ ต่อให้เราสั่งอัปโหลดงาน Git ก็จะข้ามไฟล์เหล่านี้ไปโดยอัตโนมัติ ทำให้ข้อมูลความลับไม่รั่วไหล
  • ​4) แนะนำคำสั่ง Git พื้นฐาน 🙂‍↕️
เพื่อให้ทำงานได้อย่างปลอดภัย และ เป็นระบบ ต่อไปนี้คือคำสั่งที่คุณควรฝึกใช้
1) git init : เริ่มต้นสร้างระบบ Version Control ในเครื่อง
2) git add : เตรียมไฟล์งาน (หากมี .gitignore ระบบจะคัดกรองไฟล์ลับออกให้เอง)
3) git commit -m "อธิบายสิ่งที่คุณทำ": บันทึกการเปลี่ยนแปลงลงในประวัติ
4) git push : ส่งงานขึ้น GitHub
5) git pull : ดึงงานล่าสุดจากเพื่อนลงมาอัปเดต
6) git status : เช็กสถานะไฟล์ว่ามีอะไรเปลี่ยนแปลงบ้าง
✏️ Shoper Gamer
  • ​Git คืออะไร 👇
  • ​GitHub Desktop คืออะไร 👇
  • ​Version Control System (VCS) คืออะไร 👇
Credit :
👇
  • ​https://github.com/orgs/community/discussions/40872
  • ​https://upsun.com/blog/what-is-env-file/
  • ​https://docs.github.com/en/get-started/start-your-journey/uploading-a-project-to-github
  • ​https://docs.github.com/en/repositories/working-with-files/managing-files/adding-a-file-to-a-repository#:~:text=Your%20repository%20may%20be%20secured,to%20upload%20the%20file%20again.

ดูเพิ่มเติมในซีรีส์

โฆษณา