วิธีใช้ Git กับ GitHub: Fork, Clone, Pull Request เบื้องต้น

Git และ GitHub เป็นเครื่องมือที่สำคัญอย่างยิ่งในวงการพัฒนาซอฟต์แวร์ ไม่ว่าจะเป็น developers ที่ทำงานร่วมกันในโปรเจกต์ พัฒนา web application หรือ contribute ให้กับ open source project บทความนี้จะอธิบายวิธีการใช้งาน Git และ GitHub ตั้งแต่ Fork, Clone ไปจนถึง Pull Request สำหรับผู้เริ่มต้น พร้อมใช้งานบน Cloud VPS ของ ผู้ให้บริการโฮสติ้ง

Git vs GitHub: ความแตกต่างที่ต้องเข้าใจ

Git เป็น version control system แบบ open source ที่ใช้จัดเก็บและติดตามการเปลี่ยนแปลงของไฟล์ ทำให้สามารถทำงานร่วมกันได้หลายคนพร้อมกัน

GitHub เป็น web-based hosting service สำหรับ Git repositories ที่เพิ่มคุณสมบัติด้าน collaboration ต่างๆ เช่น Pull Request, Issues, Code Review

Fork คืออะไร และทำไมต้องใช้

Fork คือการสร้างสำเนา (copy) ของ repository ของคนอื่น มาไว้ใน account ของคุณเอง ซึ่งมีประโยชน์เมื่อคุณไม่ได้เป็น owner ของ repository นั้น แต่ต้องการ contribute โค้ดไปยัง open source projects หรือปรับปรุงโปรเจกต์ของคนอื่น

ข้อดีของ Fork

  • คุณไม่จำเป็นต้องเป็น owner ของ repository ก็สามารถ contribute โค้ดได้
  • คุณสามารถทำการแก้ไขได้อย่างอิสระ และ submit changes กลับมาโดยไม่กระทบ original repository
  • คุณไม่ต้องขออนุญาตจากเจ้าของ repository ก่อนเริ่มทำงาน

ขั้นตอนที่ 1: Fork Repository บน GitHub

เข้าไปยัง GitHub repository ของ project ที่ต้องการ Fork โดยมีขั้นตอนง่ายๆ ดังนี้:

  • ไปยัง GitHub repository ที่ต้องการ Fork
  • หาปุ่ม “Fork” (อยู่มุมขวาบนของหน้า)
  • เลือก account ที่จะเก็บ fork repository
  • คลิก “Create fork” แล้วรอสักครู่

ขั้นตอนที่ 2: Clone Repository ไปยังเครื่องของคุณ

หลัง fork แล้ว คุณต้อง clone repository มายังเครื่องของคุณ เปิด Terminal แล้วรันคำสั่งนี้:

git clone https://github.com/YOUR_USERNAME/repository-name.git
cd repository-name

แทนที่ YOUR_USERNAME ด้วย GitHub username ของคุณ และ repository-name ด้วยชื่อของ repository ที่ fork มา

ขั้นตอนที่ 3: สร้าง Branch ใหม่สำหรับ Feature

ก่อนเริ่มแก้ไขโค้ด ควรสร้าง branch ใหม่เสมอ เพื่อไม่ให้ changes ไปกระทบ main/master branch โดยตรง:

git checkout -b feature/my-feature-name

คำสั่งนี้จะสร้าง branch ใหม่ชื่อ feature/my-feature-name และสลับไปทำงานบน branch นั้นทันที

ขั้นตอนที่ 4: แก้ไขโค้ด, Commit และ Push

ทำการแก้ไขโค้ดตามต้องการ จากนั้น commit และ push ไปยัง GitHub:

# Stage การเปลี่ยนแปลงทั้งหมด
git add .
# Commit พร้อมข้อความอธิบาย
git commit -m "Fix: fix bug in login function"
# Push ไปยัง GitHub
git push origin feature/my-feature-name

ขั้นตอนที่ 5: สร้าง Pull Request

กลับไปที่ GitHub หลัง push แล้ว คุณจะเห็นปุ่ม “Compare & pull request” ปรากฏขึ้น คลิกปุ่มนั้นแล้วทำตามขั้นตอนนี้:

  • เขียน title ของ PR ให้กระชับและชัดเจน
  • เขียนรายละเอียดของการเปลี่ยนแปลง (description)
  • คลิก “Create pull request” เพื่อส่ง PR

Code Review Process

  • Reviewer Comments: Maintainers หรือ collaborators จะตรวจสอบโค้ดและให้ความเห็น
  • Request Changes: หาก reviewer ต้องการให้แก้ไขเพิ่มเติม คุณต้องทำการแก้ไขแล้ว push อีกครั้ง
  • Approve: เมื่อ reviewer เห็นด้วยกับ PR จะกด approve จากนั้นสามารถทำการ merge ได้โดยกดปุ่มด้านข้าง

Merge Pull Request

เมื่อได้รับ approve แล้ว คุณสามารถคลิก “Merge pull request” เพื่อรวมโค้ดเข้ากับ branch หลักของ project

ขั้นตอนที่ 7: Sync Fork กับ Original Project

เมื่อเวลาผ่านไป original project ที่คุณ fork ไว้อาจมีการอัปเดต ควรตั้งค่า upstream remote เพื่อ sync ข้อมูลล่าสุด:

git remote add upstream https://github.com/ORIGINAL_OWNER/repository-name.git

ดึง commit ใหม่จาก original repository:

git fetch upstream
git rebase upstream/main

จากนั้น push ไปยัง fork ของคุณ (force push):

git push origin main -f

Git Commands ที่ใช้งานบ่อย

คำสั่งการใช้งาน
git statusดูสถานะไฟล์ในโปรเจกต์
git logดู commit history
git diffดูความแตกต่างของไฟล์ที่เปลี่ยนแปลง
git branchดู branches ทั้งหมดที่มี
git mergeรวม branches เข้าด้วยกัน

Best Practices สำหรับมือใหม่

  • เขียน commit messages ให้ชัดเจน เช่น “Add: new user authentication”
  • ใช้หลัก atomic commits (1 commit = 1 feature หรือ 1 bug fix)
  • ใช้ .gitignore เพื่อไม่ track ไฟล์ที่ไม่จำเป็น
  • อัปเดต branch ให้เป็นปัจจุบันก่อน merge PR เสมอ
  • รัน tests ก่อน submit PR ทุกครั้ง

บทสรุป: Git และ GitHub เป็นเครื่องมือที่ช่วยให้คุณสามารถทำงานร่วมกับ collaborators ได้อย่างมีประสิทธิภาพ ไม่ว่าจะเป็น open source projects หรือโปรเจกต์ภายในทีม ด้วย Cloud VPS ของ ผู้ให้บริการโฮสติ้ง คุณสามารถตั้งค่า Git server และขยาย project ได้อย่างมั่นใจ