👶 Git พื้นฐาน

😢 ปัญหา

เวลาที่เราเขียนโค้ดเรามักจะเจอปัญหาว่า จะแชร์งานเพื่อทำงานร่วมกับเพื่อนๆยังไง จะเอา Thumbdrive ไปจิ้มเพื่อแชร์ให้กันก็กลัวติดไวรัส หรือจะตั้ง NAT ขึ้นมาก็ดูจะไม่สะดวก สุดท้ายก็เลยเอางานขึ้น OneDrive, Google Drive, Dropbox ก็พอจะใช้งานได้ระดับนึง แต่มันก็ยังไม่สะดวกอยู่ดี

แล้วปรกติบริษัทต่างๆที่เขาทำงานร่วมกับกับคนเป็นร้อยๆคน มีไฟล์เป็นหมื่นๆไฟล์ เขาทำงานร่วมกันได้ยังไงกันนะ ?

😄 วิธีแก้ปัญหา

เข้าใช้โปรแกรมพวก Version control เข้ามาช่วยในการจัดการแชร์ไฟล์เพื่อทำงานร่วมกับเป็นทีมยังไงล่ะ ดังนั้นในคอร์สนี้เราจะมาพูดถึงตัวที่ทั่วโลกนิยมใช้กันนั่นก็คือ Git นั่นเองขอรับบบ ดังนั้นไปดูกันเลยว่ามันทำอะไรได้บ้าง และมันจะช่วยลดงานของเหล่า developer อย่างเราๆได้ยังไงกันบ้าง

🤔 Git คือไย & ลงไรบ้าง ?

โปรแกรมที่ต้องติดตั้ง

🤔 เริ่มใช้งาน Clone + Commit + Push

เว็บไซต์

คำสั่งที่จำเป็นต้องรู้

Clone - เป็นการดึง source code ตัวล่าสุดจากเซิฟเวอร์มาไว้ในเครื่องของเรา เพื่อที่เราจะได้สามารถทำงานต่อกับเพื่อนๆในทีมได้

git clone <GIT_REPOSITORY_URL>

Add - เป็นการนำไฟล์ที่ถูกแก้ไขเข้าไปยัง git state เพื่อเป็นการระบุว่าไฟล์ไหนบ้างที่เราสนใจ เพื่อเตรียมไปใช้ในการ commit งานขั้นต่อไป ซึ่งในวีดีโอจะเป็นขั้นตอนที่เราจะ commit แล้วเลือกไฟล์ที่เราสนใจ เพราะใน Git GUI มันทำ 2 คำสั่งเลยตอนที่ commit

// เลือกทุกไฟล์
git add .
// หรือเลือกทีละไฟล์
git add <FILE_NAME>

Commit - เป็นการสั่งบันทึกสถานะ source code ที่อยู่ใน state ของเครื่องเราว่าเราพอใจในจุดนี้แล้ว ทำให้เราสามารถย้อนกลับมาที่จุดที่เรา commit นี้ในภายหลังได้

git commit -am "YOUR_COMMIT_MESSAGE"

Push - เป็นการนำ source code ที่อยู่ในเครื่องเรา ส่งกลับไปยังเซิฟเวอร์ เพื่อทำการอัพเดทเซิฟเวอร์ว่ามี source code ใหม่มานะ (ถ้า commit ตรงกันอยู่แล้วมันจะไม่เกิดไรขึ้น)

git push

🤔 ทำงานร่วมกันคนอื่นยังไง ?

คำสั่งที่จำเป็นต้องรู้

Pull - เป็นการดึงข้อมูลจากเซิฟเวอร์เข้ามาอัพเดทที่เครื่องของเรา เพื่อให้เราได้ source code ที่เป็นตัวล่าสุดจากฝั่งเซิฟเวอร์

git pull

🤔 แก้ไฟล์เดียวกันแล้วพังทำไงดี ?

🤔 อยากย้อนสถานะของงานทำไงดี ?

🤔 มีอย่างอื่นอีกไหม ?

เพียบเลยในการทำงานกับ Git เช่นการทำ Branching เพื่อแยกงานออกไปทำไม่ให้ไปชนกับใคร การทำ Cherry-pick เพื่อเลือกเอาเฉพาะส่วนที่เราสนใจออกมา การทำ Sub module, Merging, Re-base โอ้ยขี้เกียจไล่ เดี๋ยวถ้าว่างจะกลับมาพูดในเรื่องนี้อีกทีละกัน แต่ง่ายๆคือเพื่อนๆสามารถเข้าไปเรียนรู้ได้ด้วยตัวเองจากคอร์สอันนี้เลย ฟรีแถมคุณภาพดีเยี่ยมด้วย กด้ได้เลยจากลิงค์ด้านล่างนี้

แนะนำให้อ่าน ส่วนสำหรับเพื่อนๆที่สนใจอยากจะใช้งาน Git Repository แบบอื่นๆนอกจาก GitHub ก็สามารถไปลองศึกษาต่อได้จากลิงค์ด้านล่างตัวนี้ ซึ่งเป็นส่วนหนึ่งของคอร์ส DevOps ครัช Azure DevOps - เล่นกับ Repository