Commit changes ของ GitHub ทำอย่างไร

9 ต.ค. 2568, 19:51    

    คลิก ติดต่อรับคำปรึกษา (ฟรี)  

ขออธิบายแต่ละหัวข้อในหน้าต่าง “Commit changes” ของ GitHub ที่คุณเห็นในภาพ พร้อมคำแนะนำสำหรับสถานการณ์คุณ (ทำงานคนเดียวตอนนี้ แต่อนาคตอาจมีทีม)


1. Commit directly to the main branch

หมายถึง
เมื่อคุณเลือกตัวเลือกนี้แล้วกด “Commit changes”
GitHub จะอัปเดตไฟล์ (README.md ในภาพ) ทันทีบน branch หลัก (main) ของโปรเจกต์
การเปลี่ยนแปลงนี้จะถูกเผยแพร่ทันที ทุกคนที่ clone หรือดู repo จะเห็นการเปลี่ยนแปลงนี้ทันที

 

 

แบบจำลองไฟล์ Booking Support. Data Management Contact Rate System

 

เหมาะกับกรณีไหน

  • คุณทำงานคนเดียว
  • ไม่มี workflow ซับซ้อน
  • ต้องการความรวดเร็ว ไม่ต้องการตรวจสอบหรือรีวิว

ข้อดี

  • ง่ายและเร็ว
  • ไม่ต้องจัดการ branch หรือ pull request

ข้อควรระวัง

  • หากมีทีมในอนาคต ทุกคนจะสามารถแก้ไข branch หลักได้ทันที อาจเกิดข้อผิดพลาดหรือขัดแย้งกันได้

 


2. Create a new branch for this commit and start a pull request

หมายถึง
เมื่อเลือกตัวเลือกนี้และกด “Commit changes”
GitHub จะสร้าง branch ใหม่จาก main สำหรับการเปลี่ยนแปลงนี้
จากนั้นจะเปิด Pull Request (PR) เพื่อให้คุณ (หรือทีม) ตรวจสอบก่อนจะนำไปรวมกับ main

เหมาะกับกรณีไหน

  • มีหลายคนทำงานร่วมกัน
  • ต้องการให้มีการตรวจสอบ (review) การเปลี่ยนแปลงก่อนรวมเข้าหลัก
  • ลดความเสี่ยงจากข้อผิดพลาด
  • เก็บประวัติการเปลี่ยนแปลงและการตรวจสอบ

ข้อดี

  • ปลอดภัยมากขึ้น
  • ลดโอกาสเกิดความขัดแย้งในไฟล์
  • เหมาะกับ workflow แบบทีม

ข้อควรระวัง

  • อาจดูยุ่งยากสำหรับมือใหม่ หรือกรณีทำคนเดียว
  • ต้องเข้าใจเรื่อง branch และ pull request เพิ่มเติม

 


สรุปและคำแนะนำสำหรับคุณ (มือใหม่, ทำงานคนเดียว, อาจมีทีมในอนาคต)

ตอนนี้

  • หากคุณยังทำงานคนเดียว เลือก “Commit directly to the main branch” ได้เลยครับ สะดวกและง่าย

อนาคต (เมื่อเริ่มมีทีม)

  • แนะนำให้ใช้ “Create a new branch for this commit and start a pull request”
  • เพราะจะช่วยให้ทีมตรวจสอบโค้ดก่อนนำเข้าหลัก ลดความผิดพลาด
  • ฝึกสร้าง branch และ pull request ตั้งแต่ตอนนี้ก็ได้ เพื่อเตรียมพร้อมรับมือในอนาคต

เพิ่มเติม

  • หากไม่มั่นใจ ลองฝึกสร้าง branch และ pull request ในโปรเจกต์ทดลองดูก่อน
  • ศึกษาเรื่อง Git branching และ Pull request workflow เพิ่มเติมได้

สรุปสั้น ๆ

  • ถ้าทำคนเดียว เลือก commit ตรงไปที่ main ได้
  • ถ้ามีทีม หรืออยากฝึก workflow แบบมืออาชีพ เลือกสร้าง branch และ Pull Request
  • ไม่ผิดที่จะเลือกแบบง่ายก่อน แล้วค่อยเปลี่ยนไปใช้แบบทีมเมื่อพร้อม

ถ้าต้องการคำแนะนำการอัปโหลดไฟล์/สร้าง branch/PR แบบ step-by-step เพิ่มเติม แจ้งผมได้เลยครับ

 

 


ขอแนะนำตามสถานการณ์ที่คุณอธิบาย

หากคุณมีไฟล์ Backup ใน localhost และต้องการทดลองกับไฟล์เหล่านั้นโดยไม่ต้องกังวลว่าจะกระทบกับไฟล์จริงในโปรเจกต์หลักบน GitHub

.


1. ไฟล์ Backup ใน localhost = แหล่งทดลอง (Testing Ground)

แนวคิด:

  • ไฟล์ Backup ใน localhost เป็น “สนามทดลอง” ที่ดีมาก
  • คุณสามารถแก้ไข, ทดลองโค้ด, ลองฟีเจอร์ใหม่, หรือทดสอบไอเดียต่าง ๆ ได้เต็มที่
  • หากเกิดปัญหาใด ๆ ก็ไม่กระทบกับโปรเจกต์หลักใน GitHub
  • สามารถลบ, แก้ไข, ทำซ้ำ ได้ไม่ต้องกังวล

2. การ Commit / Upload / Pull Request (PR) สำหรับการทดลอง

แนวทางที่แนะนำ:

(A) ทดลองในเครื่อง (local) ก่อน

  • แก้ไขโค้ดในโฟลเดอร์ Backup ของคุณ
  • ใช้ Git ในเครื่องในการ commit และทดลอง branch ต่าง ๆ ได้ตามต้องการ
  • ถ้าเกิดปัญหา ลบไฟล์, git reset, หรือย้อนกลับได้ง่าย

(B) หากต้องการทดสอบบน GitHub

  • สร้าง branch ใหม่ สำหรับการทดลองบน GitHub (เช่น test-featureexperiment-01)
  • อัปโหลดไฟล์จาก localhost ไปยัง branch ใหม่ (ไม่ใช่ main)
  • เปิด Pull Request (PR) จาก branch ทดลองไปยัง main
  • ใน PR คุณจะเห็น preview, diff, และสามารถตรวจสอบผลลัพธ์ได้ก่อนจะรวม (merge) เข้าสู่ branch main
  • ถ้าไม่โอเค สามารถปิด PR หรือแก้ไข branch ทดลองได้เรื่อย ๆ

3. ข้อควรพิจารณาเป็นพิเศษ

  • อย่า commit ตรงไปที่ main ถ้าเป็นการทดลอง
    เพื่อความปลอดภัยและไม่กระทบกับ production

  • ตั้งชื่อ branch ให้สื่อความหมาย
    เช่น experiment-logintest-api-backup เพื่อแยกแยะชัดเจน

  • ใช้ PR เป็นเครื่องมือในการตรวจสอบและทดสอบ
    PR จะช่วยให้คุณเห็นความแตกต่าง (diff) ระหว่าง branch ที่ทดลองกับ main
    และสามารถเลือก merge หรือยกเลิกได้

  • สามารถแก้ไข PR ได้เรื่อย ๆ ก่อน merge
    เพิ่ม commit ใหม่เข้า branch ทดลอง PR ก็จะอัปเดตตาม

  • ถ้ามีทีมในอนาคต
    วิธีนี้คือ workflow มาตรฐานที่ทุกคนจะได้ review, comment ก่อน merge


4. ไม่ต้องกังวล!

  • ถ้าอยู่ใน branch ทดลอง, PR, หรือ backup local
    จะไม่กระทบกับไฟล์หลักจนกว่าจะ merge PR เข้า main
  • สามารถลบ branch ทดลองได้ทุกเมื่อ
  • การทดลองแบบนี้จะเพิ่มความมั่นใจในการพัฒนา และลดความเสี่ยง

สรุปขั้นตอนง่าย ๆ (สำหรับมือใหม่)

  1. ในเครื่อง (local):

    • สร้าง branch ใหม่: git checkout -b experiment-01
    • แก้ไขไฟล์, commit ตามต้องการ: git commit -am "ทดลองฟีเจอร์ใหม่"
  2. อัปโหลดไป GitHub:

    • Push branch: git push origin experiment-01
  3. เปิด Pull Request (PR):

    • เข้าเว็บ GitHub -> เลือก branch ที่ push ขึ้นไป -> กด “Compare & pull request”
    • ตรวจสอบ diff, ทดลอง merge, หรือแก้ไขเพิ่มเติม
  4. ถ้าไม่ต้องการ merge:

    • ปิด PR หรือ ลบ branch ได้ทันที
    • ไม่มีผลกระทบกับ main

 


 

ผมจะสรุปตัวอย่างคำสั่ง Git ที่สำคัญสำหรับมือใหม่

พร้อมคำอธิบายความหมาย และแต่ละขั้นตอนในการ upload (push) ไฟล์ขึ้น GitHub และ เปิด Pull Request (PR) รวมถึงอธิบายความหมายแต่ละขั้นตอนให้เข้าใจง่าย

 

1. ขั้นตอนการใช้งาน Git เบื้องต้น (คำสั่งและความหมาย)

A. เตรียมโปรเจกต์และเชื่อมต่อกับ GitHub

เริ่มต้นโปรเจกต์ (เฉพาะครั้งแรก)

git init
  • สร้างโปรเจกต์ Git ในโฟลเดอร์นั้น
  • จะมีโฟลเดอร์ .git เพิ่มขึ้นมา (เก็บข้อมูลประวัติและการเปลี่ยนแปลงทั้งหมด)

เชื่อมต่อกับ GitHub

bash

git remote add origin https://github.com/ชื่อผู้ใช้/ชื่อรีโป.git
  •  
  • ทำให้โปรเจกต์บนเครื่องเชื่อมต่อกับรีโปบน GitHub
  • origin คือชื่อเรียก remote (แหล่งเก็บโค้ดบน GitHub)

B. จัดการไฟล์และการเปลี่ยนแปลง

เพิ่มไฟล์เข้า Git เพื่อตรวจสอบการเปลี่ยนแปลง

bash

git add .  
  • เลือกไฟล์ทั้งหมดที่เปลี่ยนแปลงมาเตรียม commit

 

บันทึกการเปลี่ยนแปลง (commit)

bash

git commit -m "ข้อความอธิบายการเปลี่ยนแปลง
  • สร้างจุด checkpoint ในประวัติการเปลี่ยนแปลง

  • ข้อความใน -m จะช่วยให้รู้ว่า commit นี้เปลี่ยนอะไร


C. สร้าง Branch สำหรับทดลอง

สร้าง branch ใหม่

bash

git checkout -b ชื่อ branch
  • เช่น git checkout -b experiment-01
  • สร้าง branch ใหม่ไว้ทดลอง/พัฒนา โดยไม่กระทบกับ branch หลัก (main)

D. อัปโหลด (push) ข้อมูลขึ้น GitHub

  1. Push branch ใหม่ขึ้น GitHub

    bash

    git push origin ชื่อ branch
    
    • เช่น git push origin experiment-01
    • ส่ง branch และไฟล์ใน branch นั้นขึ้นไปเก็บบน GitHub

E. เปิด Pull Request (PR)

  1. เปิด PR ผ่านหน้าเว็บ GitHub

    • เข้าไปที่หน้ารีโปของคุณบน GitHub
    • จะเห็นปุ่ม “Compare & pull request” หลังจาก push branch ใหม่
    • กดปุ่มนี้เพื่อเปิด PR
    • เขียนรายละเอียดว่าต้องการนำ branch นี้ไปรวมกับ main เพื่ออะไร
    • กด “Create pull request”
  2. รอตรวจสอบ/แก้ไข/merge

    • สามารถแก้ไข branch ทดลองได้เรื่อย ๆ
    • คนอื่น (หรือคุณเอง) ตรวจสอบโค้ดก่อนจะ “Merge” PR เข้าไปที่ main

 


สรุปความหมายแต่ละขั้นตอน

  • git init: เริ่มระบบ Git ในโปรเจกต์
  • git remote add origin .........: เชื่อมกับรีโปบน GitHub
  • git add . บอก Git ว่าไฟล์ไหนที่เปลี่ยนแปลงและจะบันทึก
  • git commit -m "..........": สร้างจุดบันทึกการเปลี่ยนแปลง
  • git checkout -b .........: สร้าง branch ใหม่สำหรับทดลอง/พัฒนา
  • git push origin ..........: ส่ง branch และไฟล์ขึ้น GitHub
  • Pull Request (PR) กระบวนการขอ merge branch ทดลองเข้า main โดยให้คนอื่น (หรือคุณเอง) ตรวจสอบก่อน

 


วิธีใช้งานจริง (ตัวอย่าง workflow)

  1. สร้าง branch ใหม่สำหรับทดลอง
    git checkout -b test-login-feature
     
  2. แก้ไขไฟล์ / เพิ่มไฟล์ / ทดลองใน branch นั้น
     
  3. เพิ่มไฟล์ที่เปลี่ยนแปลง
    git add .
     
  4. commit การเปลี่ยนแปลง
    git commit -m "ทดลองระบบ login"
     
  5. push branch ขึ้น GitHub
    git push origin test-login-feature
     
  6. เข้าเว็บ GitHub > เปิด PR จาก branch ไปยัง main
     
  7. ตรวจสอบ / แก้ไข branch ได้เรื่อย ๆ ก่อน merge PR

 

การสังเกตว่า "Pull file" หรือ "Pull Request" สำเร็จใน GitHub สามารถดูได้จากหลายจุด ดังนี้:

  1. ดูสถานะใน Project Workflow
    จากภาพที่คุณแนบมา ในเมนู Workflows ด้านซ้ายมือ มี workflow ชื่อ "Pull request merged" ขึ้นเป็นจุดสีเขียว หมายถึง workflow นี้ถูกตั้งค่าไว้และกำลังทำงานอยู่
     - ถ้า Pull Request ถูก Merge แล้ว ระบบจะทำงานตาม workflow ที่กำหนดไว้ เช่น เพิ่มงานเข้า Project หรือเปลี่ยนสถานะ Issue

  2. สถานะ Pull Request บน GitHub  - ถ้าเข้าไปดูที่หน้า Pull Requests ของ repo จะเห็นว่า Pull Request นั้นจะมีป้าย “Merged” สีม่วง หรือถ้าเป็นการดึงไฟล์ (pull) ด้วยคำสั่ง git บนเครื่อง จะไม่มี error และจะมีข้อความสรุปไฟล์ที่ถูกดึงมาใหม่

  3. เช็คไฟล์ในเครื่อง  - ถ้าใช้คำสั่ง
      git pull
     จะมีข้อความบอกว่า “Updating…” และแสดงไฟล์ที่ถูกเปลี่ยนแปลง
     - ถ้าไม่มี error เช่น “Already up to date.” แปลว่าไฟล์ล่าสุดถูกดึงมาแล้ว

  4. ดูใน Project Automation  - ถ้า workflow “Pull request merged” ทำงาน จะมีการเพิ่มรายการใหม่เข้า Project ตามที่ตั้งไว้ เช่น workflow “Auto-add to project” ตามภาพ ก็จะมีงานใหม่ถูกเพิ่มเข้ามาอัตโนมัติเมื่อมีการ merge

สรุป

  • บนหน้าเว็บ GitHub: ดูสถานะ Pull Request ว่าเป็น “Merged”
  • ใน Project/Workflow: ดูจุดสีเขียว, ดูว่ามีงานใหม่ถูกเพิ่มเข้า Project ตาม automation
  • ในเครื่อง: git pull สำเร็จ จะไม่มี error และไฟล์จะอัปเดต

ถ้าอยากดู log หรือรายละเอียดเพิ่มเติมเกี่ยวกับการ pull, บอกได้เลยครับ

 

ขออธิบายหน้าต่าง UI (User Interface) จากภาพที่ 4 (VS Code) ให้เข้าใจง่ายๆ ครับ:

ภาพ VS Code (Source Control)

  1. แถบซ้ายมือ (ไอคอนกิ่งไม้/รูปกุญแจ)

    • คือเมนู “Source Control” สำหรับงานเกี่ยวกับ git (เช่น commit, push, pull)
  2. หัวข้อ CHANGES

    • แสดงไฟล์ที่มีการเปลี่ยนแปลงในโปรเจคของคุณ (ที่ยังไม่ได้ commit/push)
  3. Staged Changes

    • หมายถึงไฟล์ที่คุณเลือกไว้พร้อมจะ “commit” แล้ว (เช่น GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingBox.php ฯลฯ)
    • ไฟล์ทั้งหมดนี้ ถ้ากด Commit จะถูกบันทึกการเปลี่ยนแปลงในเครื่องของคุณ (local)
  4. ด้านขวา (COMMIT_EDITMSG)

    • คือไฟล์ข้อความที่บอกว่า commit นี้มีไฟล์อะไรใหม่บ้าง (new file: ...)
  5. ด้านล่าง (TERMINAL)

    • คือช่องสำหรับพิมพ์คำสั่ง เช่น git, npm, หรือคำสั่งของระบบปฏิบัติการ
  6. แถบสีฟ้าด้านล่างสุด

    • แสดงสถานะ branch (ตอนนี้เป็น development++), ว่ามี error/warning หรือไม่
  7. กล่องแจ้งเตือนขวาล่าง

    • มีข้อความว่า “Reviewing uncommitted changes...” คือระบบกำลังตรวจสอบไฟล์ที่ยังไม่ได้ commit อยู่

สรุปง่ายๆ:

  • ไฟล์ใน “Staged Changes” คือไฟล์ที่พร้อมจะ commit ถ้าต้องการบันทึกการเปลี่ยนแปลง ให้ใส่ข้อความในช่องด้านบนสุด แล้วกด “Commit”
  • ถ้าอยากส่งงานขึ้น GitHub ให้กด “Commit & Push” หรือใช้คำสั่ง git push ใน Terminal ด้านล่าง
  • ด้านขวา (COMMIT_EDITMSG) เป็น log ว่ามีไฟล์อะไรบ้างที่ถูกเปลี่ยนแปลง

ถ้าสงสัยตรงไหนใน VS Code UI หรืออยากรู้ขั้นตอนการใช้งานทีละอย่าง เช่น commit, push, pull สามารถถามเพิ่มเติมได้เลยครับ!

 

 

    คลิก ติดต่อรับคำปรึกษา (ฟรี)  

#คู่มือ สำหรับมือใหม่  


เนื้อหาที่เกี่ยวข้อง