ตอนที่ 4: การสร้างโปรเจกต์ใหม่และนำเข้าโปรเจกต์เดิม (git init vs git clone)

1. 🎯 ตอนที่ 4: การสร้างโปรเจกต์ใหม่และนำเข้าโปรเจกต์เดิม (git init vs git clone)
2. 📖 เปิดฉาก (The Hook)
จิบกาแฟยามบ่ายทีไร พี่มักจะได้ยินเสียงน้องๆ ถามคำถามคลาสสิกว่า “พี่ครับ ผมมีโฟลเดอร์งานเก่าอยู่ อยากเอาเข้า Git ต้องทำไง?” หรือบางทีก็ “พี่! ผมเจอโค้ดเทพใน GitHub อยากดึงมาลองรันในเครื่องตัวเอง ต้องโหลดเป็นไฟล์ Zip ไหม?”
การเริ่มต้นทำงานกับ Git มีแค่ 2 ท่าหลักๆ เท่านั้นครับ เปรียบเหมือนการเล่นเกม ท่าแรกคือการ “New Game” สร้างเซฟใหม่หมดจดด้วยตัวเอง และท่าที่สองคือการ “Load Save” ดึงข้อมูลเกมที่คนอื่นเล่นไว้แล้วมาลุยต่อ วันนี้เราจะมาทำความรู้จักกับ 2 คำสั่งเวทมนตร์ที่เป็นจุดเริ่มต้นของทุกโปรเจกต์อย่าง git init และ git clone กันครับ รับรองว่าถ้ารู้จักสองตัวนี้ น้องๆ จะดึงโค้ดจากทั่วทุกมุมโลกมาวิ่งเล่นในเครื่องตัวเองได้สบายๆ!
3. 🧠 แก่นวิชา (Core Concepts)
การจะได้มาซึ่ง Git Repository มี 2 วิธีหลักๆ ซึ่งใช้งานในสถานการณ์ที่ต่างกันอย่างชัดเจน:
1. git init (ผู้สร้างสรรค์จากความว่างเปล่า)
คำสั่งนี้ใช้สำหรับแปลงโฟลเดอร์ธรรมดาๆ ในเครื่องของเรา ให้กลายเป็น Git Repository แบบเต็มตัว ไม่ว่าโฟลเดอร์นั้นจะว่างเปล่า หรือมีไฟล์โปรเจกต์เก่าๆ กองอยู่เป็นร้อยไฟล์ก็ใช้ได้เหมือนกัน เมื่อร่ายคำสั่งนี้ Git จะทำการสร้างโฟลเดอร์ซ่อนที่ชื่อว่า .git ขึ้นมา โฟลเดอร์นี้แหละคือ “หัวใจ” ที่เก็บประวัติการ Commit และตั้งค่าต่างๆ ของโปรเจกต์เราไว้
2. git clone (ผู้ก๊อปปี้จักรวาลคู่ขนาน)
เมื่อเราอยากได้โปรเจกต์ที่อยู่บน Remote Repository (เช่น บน GitHub, GitLab หรือ Bitbucket) มาไว้ในเครื่อง คำสั่งนี้คือคำตอบครับ สิ่งที่ git clone ทำไม่ใช่แค่การดาวน์โหลดไฟล์ Source Code เวอร์ชันล่าสุดมาเท่านั้น แต่มันคือการ “ก๊อปปี้” ประวัติการ Commit ทุกๆ อย่างของโปรเจกต์นั้นลงมาที่เครื่องเราทั้งหมด เครื่องเราจะได้โฟลเดอร์งาน พร้อมโฟลเดอร์ .git และระบบจะทำการจำชื่อเซิร์ฟเวอร์ต้นทางไว้ในชื่อย่อว่า origin ให้เราโดยอัตโนมัติด้วย

4. 💻 ร่ายมนต์คำสั่ง (Show me the Commands)
มาดูวิธีใช้ทั้ง 2 คำสั่งแบบ Step-by-step กันครับ เปิด Terminal ขึ้นมาแล้วลุยเลย!
สถานการณ์ที่ 1: มีโฟลเดอร์งานอยู่แล้ว อยากเอาเข้า Git (git init)
# 1. เข้าไปยังโฟลเดอร์โปรเจกต์ของคุณ
cd /path/to/your/project
# 2. เสกเวทมนตร์เปลี่ยนโฟลเดอร์ธรรมดาให้เป็น Git Repository
git init
# 3. ลองเช็คสถานะดู จะพบว่าไฟล์ทั้งหมดกลายเป็น Untracked (ยังไม่ถูกติดตาม)
git statusสถานการณ์ที่ 2: อยากดึงโปรเจกต์จาก GitHub มาลงเครื่อง (git clone)
# 1. ถอยออกมาก่อน ให้แน่ใจว่าไม่ได้อยู่ในโฟลเดอร์โปรเจกต์ไหนเลย (ป้องกันการซ้อนกัน)
cd ~
# 2. ก๊อปปี้โปรเจกต์มาลงเครื่อง โดยระบุ URL ของ Repository (เช่น จาก GitHub)
git clone https://github.com/gitforteams/gitforteams.git
# 3. (ทางเลือก) ถ้าอยากเปลี่ยนชื่อโฟลเดอร์ที่โหลดมา ไม่ให้ซ้ำกับชื่อต้นฉบับ ให้พิมพ์ชื่อต่อท้ายได้เลย
git clone https://github.com/libgit2/libgit2.git my_custom_folder_name
# 4. เข้าไปยังโฟลเดอร์ที่เพิ่งโหลดมาเสร็จ แล้วเริ่มสับโค้ดได้เลย!
cd gitforteams5. 🛡️ เคล็ดลับจากคัมภีร์ลับ (Under the Hood / Pro-Tips)
มือใหม่มักจะตกม้าตายตอนเริ่มโปรเจกต์ พี่มีข้อควรระวังมาฝากครับ:
- อย่ารัน
git initในโฟลเดอร์ผิดชีวิตเปลี่ยน! กฎเหล็กคือ ห้ามไปรันคำสั่งgit initในโฟลเดอร์ระดับสูงๆ อย่างโฟลเดอร์ Home (~หรือC:\Users\Name) เด็ดขาด เพราะ Git จะมองว่าเอกสารทุกอย่าง รูปภาพ หนัง เพลง ในเครื่องคุณคือโค้ดที่ต้องติดตามทั้งหมด! ให้แน่ใจเสมอว่าcdเข้าไปในโฟลเดอร์โปรเจกต์ย่อยๆ แล้วค่อยรันคำสั่งครับ - ความลับของโฟลเดอร์
.git: ถ้าวันนึงน้องๆ รู้สึกว่า “อยากเลิกใช้ Git กับโปรเจกต์นี้แล้ว” หรือ “ทำประวัติพังจนกู่ไม่กลับ อยากเริ่มใหม่” วิธีง่ายที่สุดคือลบโฟลเดอร์ซ่อนที่ชื่อ.gitทิ้งครับ โฟลเดอร์งานของเราจะกลับกลายเป็นโฟลเดอร์ธรรมดาทันที (แต่ประวัติการ Commit หายเกลี้ยงนะ!) - Clone ทับซ้อน: ห้ามใช้คำสั่ง
git cloneในขณะที่เราอยู่ในโฟลเดอร์ที่เป็น Git Repository อยู่แล้ว ไม่งั้นน้องจะได้ Git ซ้อน Git ซึ่งจะทำให้การจัดการ Source Control ปวดหัวสุดๆ ครับ
6. 🏁 บทสรุป (To be continued…)
จำง่ายๆ ครับ: เริ่มทำเองในเครื่องใช้ init ไปดึงของคนอื่นมาใช้ clone
ตอนนี้เราก็มี Workspace ที่พร้อมสำหรับการเขียนโค้ดแล้ว ไม่ว่าจะสร้างเองหรือโหลดมาก็ตาม ในตอนต่อไป พี่จะพาไปเจาะลึกการเพิ่มไฟล์เข้าสู่ Staging Area ด้วยคำสั่ง git add และการถ่ายรูปเก็บ Snapshot ด้วย git commit อย่างถูกวิธีกันครับ เตรียมตัวให้พร้อมแล้วไปลุยกันต่อเลย!
ต้องการที่ปรึกษาด้านการวางระบบ DevOps และ Version Control ให้กับทีมหรือองค์กรของคุณ? ทีมงาน WP Solution พร้อมให้บริการออกแบบและวางระบบ CI/CD แบบครบวงจร ดูรายละเอียดบริการของเราได้ที่: www.wpsolution2017.com หรือพูดคุยปรึกษาเบื้องต้นได้ที่ Line: wisit.p