ข้ามไปเนื้อหาหลัก

จัดการหลายโปรเจกต์ด้วย Git ตัวเดียว: แยกบัญชีและคีย์ SSH

เรียนรู้วิธีจัดการโปรเจกต์ฟรีแลนซ์หลายรายบนคอมพิวเตอร์เครื่องเดียวด้วยฟีเจอร์ includeIf ของ Git และการตั้งค่า SSH แยกตามโฟลเดอร์

เรียบเรียงโดย AI
Inewgen
สด18 Oct 2026ที่มา: Dev.to3 นาทีอ่าน (0 ครั้ง)
แชร์
จัดการหลายโปรเจกต์ด้วย Git ตัวเดียว: แยกบัญชีและคีย์ SSH

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • ใช้ฟีเจอร์ includeIf ใน Git เพื่อสลับอีเมลและข้อมูลประจำตัวตามโฟลเดอร์ที่ทำงานอัตโนมัติ
  • สร้าง SSH Key แยกเฉพาะสำหรับแต่ละลูกค้าเพื่อป้องกันความผิดพลาดในการยืนยันตัวตนกับ GitHub หรือ GitLab
  • จัดการตัวแปรสภาพแวดล้อมและไฟล์ .env ให้ปลอดภัยด้วยเครื่องมือจัดการอย่าง direnv
  • ตั้งค่า .gitignore_global และ pre-commit hook เพื่อป้องกันการเผลอหลุดรอดของ API Key

การรับงานฟรีแลนซ์พร้อมกันหลายรายมักทำให้การใช้งาน Git กลายเป็นเรื่องยุ่งยากในเวลาอันรวดเร็ว ลูกค้าแต่ละรายต่างก็ต้องการข้อมูลประจำตัวที่แตกต่างกัน เช่น อีเมลของเอเจนซี่ บัญชีองค์กรบน GitHub หรือการใช้งานผ่าน GitLab แยกจากโปรเจกต์ส่วนตัวที่ใช้อีเมลส่วนตัว ความผิดพลาดเพียงเล็กน้อย เช่น การเผลอคอมมิตด้วยอีเมลผิดบัญชี หรือการใช้ SSH Key ผิดตัวจนขึ้นข้อความแจ้งเตือนสิทธิ์ปฏิเสธ (Permission denied) อาจเกิดขึ้นได้ง่ายและดูไม่เป็นมืออาชีพ

เพื่อแก้ปัญหานี้ นักพัฒนาซอฟต์แวร์ Abid Ali ได้แนะนำแนวทางการจัดระเบียบเครื่องคอมพิวเตอร์เครื่องเดียวให้สามารถทำงานร่วมกับลูกค้าหลายรายได้อย่างราบรื่น โดยใช้เวลาตั้งค่าประมาณ 20 นาทีเท่านั้น ระบบทั้งหมดจะขึ้นอยู่กับการจัดโครงสร้างไดเรกทอรีที่ชัดเจน เช่น การแยกโฟลเดอร์งานออกเป็นหมวดหมู่ลูกค้าแต่ละรายอย่างเป็นระเบียบ

directory folder tree workspace computer screen

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

Git มีความสามารถในการกำหนดค่าตามตำแหน่งที่ตั้งของที่เก็บโค้ด (Repository) บนดิสก์ได้ด้วยคำสั่ง includeIf "gitdir:..." ในขณะที่ SSH สามารถเลือกใช้งานคีย์ที่ถูกต้องตามโฮสต์แอลียส (Host alias) ได้ เมื่อนำทั้งสองอย่างมารวมกัน โฟลเดอร์ที่คุณใช้งานอยู่จึงกลายเป็นตัวกำหนดข้อมูลประจำตัวโดยอัตโนมัติ

ไฟล์การตั้งค่าหลักทั่วโลก (Global config) จะทำหน้าที่เก็บค่าเริ่มต้นพร้อมทั้งเพิ่มการอ้างอิงไฟล์แยกตามลูกค้ารายบุคคล ตัวอย่างเช่น:

ไม่อยากพลาดข่าวใหม่?

สมัครรับสรุปข่าวสารใหม่ทางอีเมล ไม่บ่อยจนรำคาญ

โฆษณา

  • กำหนดค่า [user] หลักสำหรับอีเมลส่วนตัว
  • เพิ่มคำสั่ง [includeIf] เพื่อดึงไฟล์ตั้งค่าเฉพาะเมื่ออยู่ในโฟลเดอร์ของลูกค้านั้นๆ
  • ทดสอบความถูกต้องภายในโฟลเดอร์รีพอทอรีของลูกค้าด้วยคำสั่ง git config user.email และตรวจสอบแหล่งที่มาด้วย --show-origin

การใช้ฟีเจอร์ includeIf และการแยก SSH Key ทีละลูกค้านอกจากจะช่วยลดความผิดพลาดในการส่งโค้ดแล้ว ยังเป็นแนวปฏิบัติที่ดีด้านความปลอดภัย (Security Best Practice) สำหรับฟรีแลนซ์และเอเจนซี่ที่ต้องสลับสภาพแวดล้อมการทำงานบ่อยครั้ง ช่วยป้องกันไม่ให้โทเค็นหรือสิทธิ์การเข้าถึงระบบของลูกค้ารายหนึ่งรั่วไหลไปยังโปรเจกต์ของอีกรายโดยไม่ได้ตั้งใจ

ในส่วนของการจัดการ SSH Key นั้น เนื่องจาก GitHub ใช้คีย์ในการระบุตัวตนของคุณ หากลูกค้าสร้างบัญชี GitHub แยกต่างหากให้ คุณจึงจำเป็นต้องสร้างคีย์ SSH เฉพาะสำหรับลูกค้ารายนั้นๆ ด้วยคำสั่ง ssh-keygen -t ed25519 พร้อมตั้งรหัสผ่าน (Passphrase) แล้วนำ Public Key (.pub) ไปใส่ไว้ในบัญชีที่เกี่ยวข้อง

ทางเลือกในการทำให้ Git เลือกใช้คีย์ที่ถูกต้องมีอยู่ 2 วิธีหลัก ได้แก่ การใช้ core.sshCommand ในค่าคอนฟิกของลูกค้า หรือการตั้งค่า Host alias ในไฟล์ ~/.ssh/config ซึ่งวิธีหลังจะมีความชัดเจนและใช้งานนอกเหนือจาก Git ได้ด้วย นอกจากนี้ยังต้องระวังการจัดการตัวแปรสภาพแวดล้อมและ API Key โดยการใช้งานไฟล์ .env ร่วมกับเครื่องมืออย่าง direnv รวมถึงการติดตั้ง pre-commit hook เพื่อสแกนหาความลับก่อนทำการพุชโค้ดทุกครั้ง

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้