HomeSoftware Developmentฝึกทำงานเป็นทีมด้วย Git

ฝึกทำงานเป็นทีมด้วย Git

การฝึกทำงานเป็นทีมด้วย Git เป็นทักษะที่สำคัญมาก วันนี้ผมเลยจะพาทุกคนมาจำลองสถานการณ์การฝึกใช้งาน Git ในการทำงานเป็นทีมกันครับ เพื่อที่จะช่วยให้ทุกคนเข้าใจขั้นตอนได้ดีขึ้นครับ

ในการทำตามบทความนี้ ทุกคนจะต้องมีบัญชี github สองบัญชีนะครับ และก็มีคอมสองเครื่องนะครับ เนื่องจากเราจะจำลองการทำงานเป็นทีม ก็คือตั้งแต่ 2 คนขึ้นไป ถ้าทุกคนพร้อมแล้วก็มาเริ่มกันเลย

อันดับแรกให้ทุกคนสร้าง github remote repository จำลองของตัวเองขึ้นมา 1 ตัวครับ (เอาบัญชีหลักของเราสร้างก็ได้ครับ)

ให้ทุกคนไปที่ github จากนั้น คลิก + และเลือก New repository

จากนั้นก็ให้ทุกคนตั้งชื่อ repo ของตัวเองได้เลย อย่างกรณีนี้ผมจะใช้เป็น my-startup นะครับ จากนั้นก็กดปุ่ม Create repository ได้เลย

จากนั้นมันจะมาหน้านี้นะครับ

ซึ่งส่วนต่อไป ก็ให้ทุกคนทำการอัปโหลด ไฟล์อะไรก็ได้สักตัวขึ้นไป ในกรณีนี้ ผมจะอัปโหลดเป็นไฟล์ index.html เปล่าๆ ขึ้นไป

สามารถเลือก “creating a new file” หรือจะใช้เป็น uploading an existing file ก็ได้ครับ แต่ผมจะใช้เป็น “creating a new file”

จากนั้นมันจะมาหน้านี้ ก็ให้ทุกคนทำการสร้างไฟล์ index.html ขึ้นมา (แนะนำให้ทำตามผมเลยเพราะจะได้ไม่งง)

หลังจากพิมพ์ชื่อไฟล์เสร็จ ก็กดปุ่ม Commit changes… สีเขียว ได้เลยครับ

มันจะขึ้นแบบนี้มา ก็กด Commit changes อีกรอบครับ

โอเคตอนนี้เราได้ไฟล์ index.html เปล่าๆ มาเรียบร้อยแล้ว

ทีนี้ส่วนต่อไป เราจะทำการเพิ่ม Collaborators ครับ หรือพูดง่ายๆ ก็คือ เพื่อนร่วมทีม หรือคนที่จะมาทำงานร่วมกับเราใน repo นี้

ก็ให้ทุกคนไปที่เมนู settings ครับ

จากนั้นเลือกไปที่ Collaborators ครับ

จากนั้นให้ทุกคนเลือกที่ปุ่ม Add people ครับ

จะขึ้นหน้าต่าง search ให้เราค้นหาเพื่อน หรือ คนที่เราจะเพิ่มเข้ามาทำงานใน repo ของเรา ก็ค้นหา username ของเพื่อนเรา หรือบัญชี github ของเราอีกบัญชี อันนี้แล้วแต่ทุกคนเลยครับ ผมก็จะเพิ่มคนนี้ครับ (เป็นบัญชี github ของผมอีกบัญชี)

พอค้นหาเจอแล้ว ก็กดเลือก แล้วก็กด Add ได้เลยครับ

พอแอดเสร็จ ก็จะได้ลักษณะแบบนี้ครับ

จะเห็นได้ว่า ขึ้น “Pending Invite” เพราะว่าเราส่งคำขอไปให้กับอีกคน เพื่อชวนให้เข้ามาร่วม repo ของเรา ซึ่งขั้นตอนหลังจากนี้ก็คือ ให้เราไปกดยอมรับ invite ครับ

ถ้าทุกคนไปเช็คที่เมลของอีกบัญชี ก็จะพบกับ email invite แบบนี้ครับ

พอคลิกเข้ามาก็จะเจอหน้าตาแบบนี้ครับ

ก็ให้เรากด View invitation ได้เลย จากนั้นก็ได้มาหน้านี้ครับ

ตรงนี้ก็ให้กด Accept invitation ได้เลยครับ

หลังจากกดยอมรับเสร็จ ก็ได้มาหน้านี้ครับ เป็นอันเสร็จเรียบร้อย


จากนั้นส่วนต่อไป เราจะทำการ clone repo ตัวนี้ ลงในคอมอีกเครื่อง หรือถ้าใครฝึกกับเพื่อน ก็ให้เพื่อน clone repo ลงไปในคอมของเขาได้เลยครับ

ขั้นตอนที่ 1 : ให้เพื่อนร่วมทีม Clone Repo ลองบนคอม

ต่อจากนี้จะเป็นขั้นตอนของอีกคนนะครับ ก็คือ เพื่อนร่วมทีมของเรา (หรือจริงๆ ก็คือเราเอง แต่ใช้คอมอีกเครื่อง)

ตอนนี้ผมได้ทำการ clone repo ลงมาใน คอมของตัวเองเรียบร้อยแล้ว

จากนั้นก็ให้ทุกคนเปิด project ขึ้นมาใน vscode ครับ

ตอนนี้จะเห็นว่าตัว index.html ว่างเปล่า ไม่มีอะไรเลย แต่เดี๋ยวเราจะทำการจำลอง การทำงานเป็นทีมให้ทุกคนได้เห็นภาพกันครับ

โอเคในส่วนตรงนี้ ผมจะสมมติว่า เราคือเพื่อนร่วมทีมอีกคนของเราเอง และเพื่อนของเราได้ทำการ clone โปรเจกต์ ไปในเครื่องของเขาแล้ว ทีนี้ส่วนต่อไปคือเราจะเริ่มการทำงานร่วมกันบน repo แล้วนะครับ

ส่วนต่อไปจะเป็นขั้นตอนของการทำงานบน feature branches ซึ่งเรียกได้เลยว่าเป็นหัวใจสำคัญเลย ของการทำงานเป็นทีม

ขั้นตอนที่ 2 : การทำงานบน Feature Branches (หัวใจสำคัญ)

หลักการคือ “ห้ามทำงาน หรือ commit โดยตรงไปบน main branch โดยเด็ดขาด” ไม่ว่าจะเป็นตัวเราเอง หรือเพื่อนร่วมทีมของเรา การที่เราจะทำงานร่วมกันจะต้องสร้าง branch ใหม่ สำหรับแต่ละฟีเจอร์ หรืองานแต่ละส่วนที่ตัวเองทำ

โอเคทีนี้ สิ่งแรกที่เราควรทำ หลังจากที่เรา clone repo ลงบนคอมของเราแล้วก็คือ

การ อัปเดต local main ให้ตรงกับ remote main เสมอ

ตรงนี้ให้ทุกคนเปิด terminal ขึ้นมาใน vscode แล้วเพิ่มคำสั่งตามนี้ครับ (หรือดูตามภาพได้เลย)

Bash
git checkout main
git pull origin main

ตอนแรกใช้ git checkout main จะเห็นว่ามีข้อความว่า Already on ‘main’ แปลว่าตอนนี้ เราอยู่ที่ main branch ครับ

จากนั้นเราใช้ git pull origin main จะหมายถึงว่า เราทำการดึงข้อมูลล่าสุดจาก remote

การใช้คำสั่งนี้เพื่อให้แน่ใจว่า main ในเครื่องของคุณเป็นเวอร์ชันล่าสุดจาก Remote ก่อนที่คุณจะแตก branch ใหม่

จากนั้นส่วนต่อไปที่เราจะทำก็คือ

การสร้าง Feature Branch ใหม่สำหรับงานของตัวเอง

ตรงนี้ให้เราใช้คำสั่ง ตามนี้เลย git checkout -b feature/index

Bash
git checkout -b feature/index

หรือเราจะใช้เป็นชื่ออื่นๆ ก็ได้ เช่น login-feature, task-a

ตอนนี้เพื่อนเราจะทำงานอยู่ใน branch ของตัวเอง แยกจาก main (ก็คือ branch ‘feature/index’)

วิธีสังเกตุง่ายๆ ว่าเราอยู่ branch อะไร ให้สังเกตุตรงมุมซ้ายล่าง

ส่วนต่อไป หลังจากที่เราได้ทำการสร้าง branch ที่แยกจาก main แล้ว สิ่งที่เราจะทำก็คือ เพิ่มโค้ดไปที่ index.html

เป็นโค้ดโครงสร้าง html ง่ายๆ ที่มีข้อความ h1 ตามภาพนี้เลย (ทำตามได้เลยครับ)

จากนั้นขั้นตอนต่อไปคือ

การ Add, และ Commit ใน Feature Branch ของตัวเอง

เมื่อมีการแก้ไขโค้ด เพิ่มไฟล์ หรือทำส่วนของงานเสร็จเป็นระยะๆ ให้ทำการ commit การเปลี่ยนแปลงนั้น เข้าไปใน branch ของตัวเอง

ซึ่งก็จะมีคำสั่งหลักๆ ตามนี้

Bash
git add .
git commit -m "เพิ่มส่วน login form"  # ตัวอย่าง commit message

ทีนี้ เราจะมา add & commit โค้ดของเรากัน (ดูตามภาพได้เลย)

หลังจากเรา commit เสร็จ จะเห็นว่ามีข้อความขึ้นมา

ส่วนต่อไป เราจะมาทำการ

Push Feature Branch ของตัวเองขึ้นบน Remote Repository

เพื่อให้คนอื่นเห็น branch ของเรา และเพื่อเป็นการสำรองงานขึ้น remote เราจะใช้คำสั่งนี้

Bash
git push -u origin feature/index

ทำตามรูปภาพได้เลยครับ

ก็จะเห็นว่าหลังจาก push แล้ว จะมีข้อความขึ้นมา เป็นอันเสร็จเรียบร้อย

จากนั้นส่วนต่อไปคือ

ขั้นตอนที่ 3 : การรวมงานเข้าด้วยกันผ่าน Pull Request (PR) หรือ Merge Request (MR)

เมื่อใครคนใดคนหนึ่งทำงานใน feature branch ของตัวเองเสร็จแล้ว และต้องการนำโค้ดนั้นไปรวมกับ main branch สิ่งที่ต้องทำคือ

1.สร้าง Pull Request (PR) หรือ Merge Request (MR)

ตรงนี้ให้เราเข้าไปที่หน้าเว็บของ remote repository ของเรา

ระบบมักจะตรวจจับได้ว่ามี branch ใหม่ถูก push ขึ้นมา และจะแสดงปุ่มให้ “Create Pull Request” หรือ “Compare & pull request” ตามรูปภาพด้านล่าง

ให้ทุกคน refresh หน้าเว็บ 1 ครั้ง แล้วไปที่คลิก branch จะเห็นว่า ตอนนี้มี feature/index branch แสดงขึ้นมาแล้ว

ทีนี้ก็ให้ทุกคนเลือก branch ต้นทางเป็น feature branch ของเรา (ในที่นี้คือ feature/index)

หลังจากเลือกเสร็จ branch ก็จะถูกเปลี่ยนจาก main เป็น feature/index

ทีนี้ส่วนต่อไปก็ให้ทุกคนคลิกปุ่ม “Compare & pull request” ได้เลย

ก็จะมาที่หน้านี้

ตรงนี้เราจะเขียนรายละเอียดของ pull request ก็ได้ว่า เราได้ทำอะไรไปบ้าง เพื่อให้คนอื่นเข้าใจ แต่ในกรณีนี้อาจจะไม่ต้องเขียนก็ได้

ก็ให้ทุกคนทำการกดปุ่ม “Create pull request ได้เลย”

หลังจากกดปุ่ม ก็จะมาที่หน้านี้

ซึ่งในส่วนตรงนี้ ก่อนที่เราจะทำการ Merge pull request ก็ควรที่จะตรวจสอบและรีวิวโค้ด (Code Review) ก่อน

เมื่อโค้ดผ่านการรีวิว และทุกคนเห็นด้วยแล้ว เจ้าของ Repository หรือผู้ที่มีสิทธิ์ จะทำการ Merge pull request นั้น

ซึ่งการ Merge จะนำโค้ดจาก feature branch ไปรวมเข้ากับ main branch บน Remote repository และขั้นตอนนี้จะทำให้ main บน remote มีการเปลี่ยนแปลง

โดยทั่วไป หลังจาก Merge แล้ว เราสามารถลบ feature branch ที่ไม่ใช้แล้วบน Remote ออกได้เลย (มักจะมีปุ่มให้ลบหลัง Merge)

ส่วนต่อไปเราจะมาทำการ Merge Pull Request กัน

ตรงนี้จริงๆ เราจะ Merge เลยก็ได้ แต่ผมจะจำลองว่า คนที่จะมีสิทธิ์ในการ Merge จริงๆ ก็คือ เจ้าของ Repo

ถ้าผมสลับกลับมาที่บัญชี github หลักของผม (เจ้าของ Repo) ก็จะเห็นว่า มี Pull requests ขึ้นมา 1 ตัว

ถ้าคลิกเข้ามาดูจะเจอกับหน้านี้

ให้เราคลิกเข้า

ก็จะมาเจอหน้านี้

เราสามารถกดเข้ามาที่เมนู Files changed ได้ เพื่อดูการเปลี่ยนแปลงของโค้ดก่อนหน้านี้ และโค้ดปัจจุบัน ว่ามีอะไรเปลี่ยนแปลงไปบ้าง เพื่อเป็นการ Review Code

ซึ่งถ้าเราโอเคแล้ว ก็สามารถกด Review changes แล้วก็ Approve ได้เลย หรือจะมี Comment อะไรเพิ่มเติมก็สามารถ Comment ได้

หลังจากกด Submit review แล้วก็จะกลับมาหน้านี้ พร้อมกับ alert สีฟ้าด้านบนว่า Your review was submitted successfully. และมีข้อความ Changes reviewed, 1 approval

จากนั้นก็ให้เรากดปุ่ม Merge pull request ได้เลยครับ

จะขึ้นมาแบบนี้ ก็กด comfirm merge ได้เลย

เมื่อ Merge เสร็จเรียบร้อย ก็จะได้แบบนี้ครับ

จากนั้นขั้นตอนสุดท้าย หลังจาก Merge เสร็จก็คือ

ขั้นตอนที่ 4 : อัปเดต Local main

ตอนนี้ทุกคนในทีม ไม่ว่าจะเป็นเราเอง หรือเพื่อนเรา ควรอัปเดต Local main ของตัวเอง และควรทำเป็นประจำ หลังจากมี Pull request ถูก Merge เข้า main บน Remote

ซึ่งเราสามารถใช้คำสั่งเหล่านี้

Bash
git checkout main
git pull origin main

ถ้าจะเริ่มงานใหม่ ก็กลับไปทำตามขั้นตอนที่ 2 คือ สร้าง feature branch ใหม่จาก main ที่อัปเดตแล้ว

ตรงนี้ผมจะสลับกลับไปที่คอมอีกเครื่อง (ที่จำลองว่าเป็นเพื่อนผมอีกคน)

จากนั้นผมก็จะทำการเลือก branch กลับมาที่ main branch ด้วยคำสั่ง git checkout main

และสุดท้ายก็คือดึงข้อมูลโค้ดล่าสุดที่อัปเดตแล้วด้วยคำสั่ง git pull origin main เป็นอันเสร็จเรียบร้อย (ทำตามภาพได้เลย)


สรุปหัวใจสำคัญ:

Branching Strategy: main คือ branch หลักที่เสถียร งานใหม่ทำใน feature branch เสมอ

Pull Requests: ใช้สำหรับรีวิวและรวมโค้ดเข้า main อย่างเป็นระบบ

Communication: สื่อสารกันในทีมว่าใครกำลังทำอะไร เพื่อลดโอกาสเกิด Conflict หรือทำงานซ้ำซ้อน

• Regular Updates: git pull บ่อยๆ เพื่อให้โค้ดในเครื่องเป็นปัจจุบันเสมอ

หวังว่าบทความนี้จะทำให้ทุกคนเข้าใจการใช้ Git ในการทำงานเป็นทีม และขอให้สนุกกับการฝึกทำงานเป็นทีมด้วย Git นะครับ 😊

admin
adminhttps://milersoft.com
Developer and Content Creator who shares knowledge in the digital world.

คำแนะนำการฝึกเขียนโปรแกรมยุคใหม่

หัวใจสำคัญคือการเปลี่ยนมุมมองจาก "เราต้องรู้ทุกอย่าง" ไปเป็น "เราต้องรู้ว่าจะใช้เครื่องมือ (AI) ให้ฉลาดที่สุดได้อย่างไร" โดยมีพื้นฐานที่แน่นพอที่จะควบคุมและตรวจสอบผลลัพธ์จาก AI ได้ครับ 🧠 1. ปรับ Mindset: มอง AI เป็นผู้ช่วย ไม่ใช่คู่แข่ง สิ่งแรกที่ต้องทำคือการเปิดใจยอมรับ AI ครับ AI ไม่ได้มาแทนที่เรา แต่มาเป็นเครื่องมือทรงพลังที่สุดเท่าที่เคยมีมาสำหรับนักพัฒนา AI คือ Pair Programmer...

แนวทางเขียนโค้ด ReactJS แบบ Production-ready

การเขียนโค้ด ReactJS ให้พร้อมใช้งานจริงในระดับ Production นั้นมีแนวทางและหลักปฏิบัติหลายอย่างที่คุณควรคำนึงถึง เพื่อให้ได้แอปพลิเคชันที่มีประสิทธิภาพ, บำรุงรักษาง่าย, และปรับขนาดได้ดี ในบทความนี้ผมจะมาแนะนำแนวทางที่สำคัญพร้อมตัวอย่างให้กับทุกคนได้เข้าใจกันครับ

เหตุผลที่ Dev เลือกใช้ MacBook

ในโลกของการพัฒนาซอฟต์แวร์ที่เปลี่ยนแปลงอย่างรวดเร็ว MacBook ได้กลายเป็นเครื่องมือคู่ใจของเหล่านักพัฒนาจำนวนมาก ไม่ใช่แค่เพียงสัญลักษณ์ของสถานะทางสังคม แต่เบื้องหลังความนิยมนี้มีเหตุผลที่จับต้องได้มากมาย
- Advertisment -spot_img