- สร้าง folder หรือไปที่ folder ที่ต้องการ
- คลิกขวา กด "Open in Terminal"
- ใส่คำสั่งใน command
git clone https://github.com/theploy67/helloDevops.gitเราจะมี branch กันทั้งหมด 3 กลุ่มใหญ่
- main : จะเป็น branch หลักที่รวมโค้ดที่สมบูรณ์และเป็นฉบับจริงมาไว้ที่ branch นี้
- develop : จะเป็น branch ที่รวมโค้ดเพื่อนๆทุกคนเปรียบเสมือน main มีเพื่อเอามาเช็คโค้ดก่อนเอาไปที่ branch main เผื่อพัง
- [branchชื่อเพื่อนๆ] : branch นี้จะเป็น branch สำหรับให้เพื่อนได้ push โค้ดของตัวเองเก็บไว้ของใครของมัน
เพื่อป้องกันไม่ให้โค้ดเกินการเมิร์จกัน – ทุกคนจะมี branch ชื่อของตัวเอง ได้แก่
ploy, mint, grace, fluke, pair
"main" เด็ดขาด
ก่อนจะอัพงาน ทุกคนต้องเช็ค ว่าอยู่ branch ชื่อตัวเองไหม ด้วยคำสั่ง
git branchExample:
develop
fluke
grace
* main --> เครื่องหมาย * คือ branch ปัจจุบันที่กำลังทำงาน
mint
pair
ploy
-
เข้าไปที่ terminal ใน vs code หรือ Intellij หรือ ไปที่ CMD ที่ root folder project
-
ตรวจสอบว่าอยู่ branch ตัวเองรึยัง ⭐สำคัญ
git branch
git switch <ชื่อ branch ตัวเอง>- เช็กว่าไฟล์ไหนถูกแก้ไขแล้ว [ไฟล์ไหนที่ถูกแก้ไข จะมีสีแดง และเขียนว่า modified]
git status- เลือกไฟล์ที่ต้องการอัพขึ้น
#มี 3 ตัวเลือก
#1.เพิ่มไฟล์ทั้งหมด (รวมถึงที่ยัง untracked)
#คำสั่งนี้จะรวมทุกการแก้ไข — ทั้งไฟล์ใหม่, ไฟล์เก่า, และไฟล์ที่ลบออก
git add -A
#2. ต้องการไฟล์เดียวที่ push
git add <ชื่อไฟล์>
#3.หรือถ้าอยาก add ทุกไฟล์ที่แก้
git add .- ตรวจเช็กว่าไฟล์ถูก add แล้ว (ไฟล์จะมีสีเขียว และเขียนว่า modified)
git statusExample:
On branch ploy ---> อยู่ branch ชื่อ ploy แล้ว
Your branch is up to date with 'origin/ploy'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md ---> ไฟล์นี้ถูกแก้ไข
- Commit เพื่อบันทึกการเปลี่ยนแปลงใน branch ตัวเอง
git commit -m "feat: อธิบายสิ่งที่ทำ เช่น เพิ่มหน้า Login"- Push ขึ้นไปที่ GitHub (ครั้งแรกต้อง set upstream)
git push -u origin <ชื่อ branch ตัวเอง>
# เช่น
git push -u origin ploy❌ พอยดูส่วนนี้คนเดียว
- กลับมาที่ branch develop
git checkout develop- ดึงโค้ดล่าสุดของ develop มาก่อน (กันพัง)
git pull origin develop- รวมงานจาก branch ของเพื่อน (ตัวอย่าง: mint)
git merge --no-ff mint -m "merge: mint → develop"- ดัน develop ขึ้น GitHub
git push origin developตอนนี้โค้ดจากเพื่อนจะถูกรวมเข้าที่ develop แล้ว
❌ พอยดูส่วนนี้คนเดียว
-
ตรวจสอบว่า develop สมบูรณ์แล้ว (เพื่อนทุกคน push งานเข้ามาใน develop เรียบร้อย, ทดสอบระบบแล้ว)
-
ไปที่ branch develop
git checkout develop
git pull origin develop- ไปที่ branch main
git checkout main
git pull origin main- merge develop → main
git merge --no-ff develop -m "merge: develop → main (release version 1.0)"- push main ขึ้น GitHub
git push origin mainสามารถ “ยกเลิก” ได้ตามนี้
- ยกเลิกเฉพาะไฟล์ที่ add ไปแล้ว
git restore --staged <ชื่อไฟล์>- ยกเลิกทุกไฟล์ที่ถูก add ไปแล้ว
git restore --staged .- ถ้าคุณอยากกลับไปไฟล์เดิมทั้งหมด (รวมลบการแก้ไขใน working directory ด้วย
⚠️ )
git restore <ชื่อไฟล์>
# หรือทั้งหมด
git restore .git restore --staged <file>- ทุกครั้งที่ branch
developถูกอัพเดต เพื่อนๆ ควร pull จากdevelopลง branch ของตัวเองก่อนทำงานต่อ - ถ้ามีงานค้างอยู่ → Git จะเตือนว่ามีการแก้ไขไฟล์เดียวกันจากหลายคน (conflict) เราจะต้องแก้ไข conflict เอง ไม่อย่างนั้นงานจะทับซ้อนกัน
-
อยู่ branch ของตัวเอง เช่น
gracegit checkout grace
-
ดึงโค้ดล่าสุดจาก develop มารวมเข้ามาใน branch ตัวเอง
git fetch origin git merge origin/develop
เพื่อให้ branch ของเราอัพเดตตาม
developตลอด -
ถ้ามี conflict (Git แจ้งไฟล์ที่ทับซ้อน) → เปิดไฟล์มาแก้ไขเอง เช่น:
<<<<<<< HEAD // ของเรา ======= // ของ develop >>>>>>>→ ลบส่วนที่ไม่ต้องการออก แล้ว commit ใหม่
-
ทำงานต่อ/แก้ไขไฟล์ของตัวเองได้ตามปกติ
-
commit + push ไปที่ branch ของตัวเอง
git add . git commit -m "feat: เพิ่มหน้าใหม่" git push origin grace
-
กรณีแก้ไฟล์คนละไฟล์กับเพื่อน → Git จะ merge ให้อัตโนมัติ ไม่มีปัญหา
-
กรณีแก้ไฟล์เดียวกันกับเพื่อน (โดยเฉพาะบรรทัดเดียวกัน) → จะเกิด merge conflict ต้องแก้เอง
-
กรณีอยากเก็บงานที่ยังไม่เสร็จ แต่ต้อง pull ก่อน ใช้
stashเก็บงานชั่วคราวgit stash git pull origin develop git stash pop
→ จะได้งานของเรากลับมา พร้อมกับโค้ดใหม่จาก
develop
-
เข้าไปที่โฟลเดอร์ frontend
cd frontend -
ติดตั้ง dependency (ต้องมี Node.js และ npm ติดตั้งในเครื่องก่อน)
npm install
📌 คำสั่งนี้จะอ่านไฟล์
package.jsonแล้วติดตั้ง library ทั้งหมดที่โปรเจคต้องใช้ เช่น React, Vite, Axios ฯลฯ
npm run dev-
รอจนขึ้นข้อความประมาณนี้:
VITE v5.0.0 ready in 1000 ms ➜ Local: http://localhost:5173/ ➜ Network: http://192.168.xx.xx:5173/ -
จากนั้นเปิด browser แล้วเข้าไปที่ http://localhost:5173
-
สร้าง build
npm run build
ผลลัพธ์จะถูกเก็บไว้ในโฟลเดอร์
dist/ -
ทดสอบ build ด้วย
npm run preview
แล้วเข้าไปที่ http://localhost:4173
-
ติดตั้ง library เพิ่ม
npm install <ชื่อแพ็กเกจ>
เช่น
npm install axios
-
ลบ node_modules แล้วติดตั้งใหม่ (เวลาเจอบั๊กแปลกๆ)
rm -rf node_modules package-lock.json npm install
cd frontend
npm install
npm run devแล้วเปิดเว็บ http://localhost:5173 🎉
ยอดเยี่ยมมากครับ 💪
คำถามนี้คือ “อยากให้ branch pair ดึงโค้ดล่าสุดจาก branch ploy มาด้วย”
ซึ่งทำได้ง่ายมาก โดยใช้คำสั่ง merge หรือ rebase
✅ ใช้ได้ทั้งใน frontend, backend หรือ project รวม (แค่ต้องอยู่ใน repo เดียวกัน)
#อันนี้แล้วแต่ path แต่ละคน
cd C:\Users\ployhp\Desktop\HelloDevops\helloDevopsgit fetch --all --prunegit checkout ployตรวจสอบให้แน่ใจว่าคุณอยู่ใน branch ploy จริง
git branchจะเห็นเครื่องหมาย * ploy
มีให้เลือก 2 วิธี 👇
git merge origin/develop -m "merge: update from develop → ploy"✔ โค้ดของ
developจะถูกรวมเข้ามาในploy✔ เหมาะกับทีมที่ต้องการเห็นว่ามีการ merge มาจาก branch ไหน
ใช้เฉพาะเมื่ออยากให้ branch
ployมีโค้ดเหมือนdevelopทุกไฟล์ (ทับของเดิมหมด)
git reset --hard origin/develop❗ ระวัง: งานที่ยังไม่ commit ใน branch
ployจะถูกลบออกหมด
git push origin ploy --forcecd helloDevops
git fetch --all --prune
git checkout ploy
git merge origin/develop -m "merge: update from develop → ploy"
git push origin ployหรือถ้าอยากให้เหมือน develop เป๊ะ:
git checkout ploy
git fetch --all --prune
git reset --hard origin/develop
git push origin ploy --force-
ถ้ามี conflict ให้ใช้ VS Code หรือ GitHub Desktop แก้ไฟล์ที่ขึ้น conflict แล้ว commit ใหม่
-
ถ้าจะตรวจสอบว่า merge สำเร็จหรือยัง ใช้:
git log --oneline --graph --decorate -10