- ทำความเข้าใจเกี่ยวกับระบบควบคุมเวอร์ชัน (VCS)
- พื้นฐาน Git
- Git การแตกแขนง (Branching) และการผสาน (Merging)
- การทำงานระยะไกล (Remotes) และการทำงานร่วมกัน (Collaboration) กับ Git
- ยกเลิก (Undoing) ทำการเปลี่ยนแปลง
- Git ขั้นสูง (Advanced)
- การใช้ Git กับบริการโฮสติ้ง (Hosting Services)
- ข้อปฏิบัติที่ดีที่สุด (Best Practices)
Git ซึ่งเป็นระบบควบคุมเวอร์ชันแบบกระจาย (distributed version control system) เป็นเครื่องมือสำคัญในชุดเครื่องมือของนักพัฒนา กำเนิดโดย Linus Torvalds ผู้สร้าง Linux ความนิยมของ Git เกิดจากพลัง ประสิทธิภาพ และความยืดหยุ่น คู่มือนี้มีจุดมุ่งหมายเพื่อให้ภาพรวมที่ครอบคลุมของ Git การใช้งาน ฟังก์ชันการทำงาน และวิธีการที่จะช่วยให้โครงการความร่วมมือในการทำแอพมีประสิทธิภาพและราบรื่น
สามารถดูคลิปวีดีโอการติดตั้งและการใช้งานได้ที่ Git คืออะไร และการติดตั้ง
1.ทำความเข้าใจเกี่ยวกับระบบควบคุมเวอร์ชัน (VCS)
ระบบควบคุมเวอร์ชัน (Version Control Systems) หรือ VCS เป็นส่วนสำคัญในการทำแอพ ช่วยให้นักพัฒนาสามารถติดตามการเปลี่ยนแปลงในโค้ด ย้อนกลับไปยังเวอร์ชันก่อนหน้า และทำงานร่วมกันได้อย่างมีประสิทธิภาพมากขึ้น VCS แบบกระจายเช่น Git ช่วยให้นักพัฒนาหลายคนทำงานในโครงการเดียวกันโดยไม่ต้องเขียนทับการเปลี่ยนแปลงของกันและกัน นอกจากนี้ยังช่วยให้คุณทำงานแบบออฟไลน์ได้ เนื่องจากประวัติทั้งหมดของโครงการถูกจัดเก็บไว้ในที่เก็บในเครื่องของคุณด้วย
2. พื้นฐาน Git
การเริ่มต้นใช้งาน Git เกี่ยวข้องกับการติดตั้งซอฟต์แวร์และกำหนดค่าข้อมูลผู้ใช้ของคุณ เมื่อติดตั้งและตั้งค่า Git แล้ว คุณสามารถสร้างที่เก็บใหม่ได้โดยใช้คำสั่ง ‘git init’ สิ่งนี้จะเริ่มต้นที่เก็บ Git ใหม่ในไดเร็กทอรีปัจจุบันของคุณ โดยสร้างไดเร็กทอรี ‘.git’ ที่เก็บข้อมูลเมตาที่จำเป็นทั้งหมดสำหรับ repo ใหม่
ทุกการเปลี่ยนแปลงใน Git จะถูกติดตามเป็นการคอมมิต โดยแต่ละรายการจะมี ID เฉพาะของตัวเอง เมื่อคุณทำการเปลี่ยนแปลงโค้ด คุณจะ ‘เพิ่ม’ การเปลี่ยนแปลงเหล่านั้นไปยังพื้นที่การแสดง ซึ่งเป็นที่สำหรับรวบรวมและตรวจทานการเปลี่ยนแปลงก่อนที่จะดำเนินการ เมื่อคุณพอใจกับการเปลี่ยนแปลงแล้ว ‘git commit’ จะสร้างสแนปชอตของการเปลี่ยนแปลงการทำแอพทีละขั้นของคุณ
คุณยังสามารถดูประวัติของที่เก็บของคุณโดยใช้ ‘git log’ เพื่อให้ข้อมูลเชิงลึกเกี่ยวกับการเปลี่ยนแปลงก่อนหน้านี้ ใครเป็นคนสร้าง และทำไม ส่วนสำคัญของ Git คือไฟล์ ‘.gitignore’ ซึ่งช่วยให้คุณระบุไฟล์หรือไดเร็กทอรีที่ Git ควรละเว้น ทำให้ที่เก็บของคุณสะอาดปราศจากไฟล์ชั่วคราว บันทึก หรือไฟล์ที่ไม่จำเป็นอื่นๆ
3. Git การแตกแขนง (Branching) และการผสาน (Merging)
การแตกแขนงเป็นหนึ่งในคุณสมบัติที่ทรงพลังที่สุดของ Git ช่วยให้คุณสร้างสำเนาที่แตกต่างกันของโค้ด ทำงานกับฟีเจอร์ใหม่หรือแก้ไขจุดบกพร่อง แล้วรวมการเปลี่ยนแปลงเหล่านี้กลับเข้าไปในโค้ดเบสหลัก ‘git branch’ สร้างสาขาใหม่ และ ‘git checkout’ สลับไปมาระหว่างสาขา
เมื่อคุณทำงานในสาขาเสร็จแล้ว ‘git merge’ จะช่วยให้คุณสามารถรวมการเปลี่ยนแปลงของคุณกับสาขาอื่นได้ บางครั้ง Git ไม่สามารถผสานการเปลี่ยนแปลงได้โดยอัตโนมัติ ส่งผลให้เกิดความขัดแย้งในการผสาน ข้อขัดแย้งเหล่านี้จำเป็นต้องได้รับการแก้ไขด้วยตนเอง หลังจากนั้นคุณสามารถดำเนินการผสานต่อไปได้
4. การทำงานระยะไกล (Remotes) และการทำงานร่วมกัน (Collaboration) กับ Git
Git เป็น VCS แบบกระจาย ซึ่งหมายความว่านักพัฒนาแต่ละคนมีสำเนาฉบับสมบูรณ์ของที่เก็บในเครื่องของตน แต่ในการทำแอพร่วมกัน คุณต้องมีศูนย์กลางที่สามารถจัดเก็บและซิงค์สำเนาทั้งหมดได้ นี่คือที่มาของพื้นที่เก็บข้อมูลระยะไกล แพลตฟอร์มเช่น GitHub, GitLab และ Bitbucket โฮสต์ที่เก็บข้อมูลระยะไกลซึ่งนักพัฒนาสามารถผลักดันการเปลี่ยนแปลงและดึงการอัปเดตได้
คำสั่ง ‘git clone’ ใช้เพื่อคัดลอกที่เก็บระยะไกลไปยังเครื่องของคุณ ‘git push’ ส่งการเปลี่ยนแปลงของคุณไปยังที่เก็บระยะไกล ในขณะที่ ‘git pull’ ดึงข้อมูลการเปลี่ยนแปลงล่าสุดจากที่เก็บระยะไกลและรวมเข้ากับสาขาปัจจุบันของคุณ
5. ยกเลิก (Undoing) ทำการเปลี่ยนแปลง
Git มีหลายวิธีในการเลิกทำ (Undoing) หรือปรับการเปลี่ยนแปลงของคุณ ‘git revert’ สร้างการคอมมิตใหม่ที่ยกเลิกการเปลี่ยนแปลงที่ทำในคอมมิทก่อนหน้า ในทางกลับกัน ‘git reset’ ช่วยให้คุณสามารถละทิ้งการคอมมิตในสาขาส่วนตัวหรือรีเซ็ตพื้นที่การแสดงละครของคุณโดยไม่ต้องแตะไดเร็กทอรีการทำงานของคุณ
คำสั่ง ‘git stash’ จะบันทึกการเปลี่ยนแปลงชั่วคราวที่คุณไม่ต้องการให้กระทำทันที คุณสามารถใช้การเปลี่ยนแปลงเหล่านี้ในภายหลังด้วย ‘git stash apply’
6. Git ขั้นสูง (Advanced)
แม้ว่าพื้นฐานของ Git จะครอบคลุมความต้องการส่วนใหญ่ของคุณ แต่ Git ก็มีคุณลักษณะขั้นสูงมากมาย ‘git rebase’ ช่วยให้คุณสามารถย้ายหรือรวมลำดับของการคอมมิตไปยังการคอมมิตพื้นฐานใหม่ได้ แม้จะทรงพลัง แต่ก็อาจเป็นอันตรายได้หากใช้ไม่ถูกวิธี
แท็ก Git ทำเครื่องหมายจุดเฉพาะในประวัติโครงการของคุณว่ามีความสำคัญ โดยทั่วไปจะใช้เพื่อแสดงถึงการเปิดตัวโครงการ ‘git cherry-pick’ ให้คุณรับคอมมิชชันจากสาขาหนึ่งและนำไปใช้กับสาขาอื่นได้
7. การใช้ Git กับบริการโฮสติ้ง (Hosting Services)
Git ผสานรวมกับบริการโฮสติ้งอย่าง GitHub, GitLab และ Bitbucket ได้อย่างราบรื่น โดยมอบอินเทอร์เฟซแบบกราฟิกสำหรับจัดการที่เก็บของคุณ พวกเขาแนะนำคุณสมบัติเพิ่มเติม เช่น คำขอดึง ซึ่งเป็นวิธีการเสนอการเปลี่ยนแปลงที่สามารถตรวจสอบและหารือก่อนที่จะรวมเข้าด้วยกัน
8. ข้อปฏิบัติที่ดีที่สุด (Best Practices)
เมื่อใช้ Git อย่างถูกต้อง จะช่วยปรับปรุงเวิร์กโฟลว์ของคุณได้อย่างมาก ข้อความยืนยันที่ดีมีความสำคัญ พวกเขาบันทึกการเปลี่ยนแปลงของคุณและให้บริบทสำหรับนักพัฒนารายอื่น (และตัวคุณในอนาคต) การแตกสาขาทำให้คุณสามารถทำแอพกับฟีเจอร์ต่างๆ ได้พร้อมกันโดยไม่กระทบกับโค้ดเบสหลัก สิ่งสำคัญคือต้องพุชการเปลี่ยนแปลงของคุณไปยังที่เก็บระยะไกลเป็นประจำเพื่อหลีกเลี่ยงการสูญหายของข้อมูลและเพื่อให้ทีมของคุณอัปเดตอยู่เสมอ
การเรียนรู้ Git ต้องฝึกฝน นักพัฒนาสามารถเข้าใจความซับซ้อนและชื่นชมประสิทธิภาพและความยืดหยุ่นในการจัดการโครงการการทำแอพทั้งขนาดเล็กและขนาดใหญ่ผ่านการใช้งานที่สม่ำเสมอ การทำความเข้าใจฟังก์ชันการทำงานของ Git ทำให้นักพัฒนามีประสิทธิภาพและประสิทธิผลมากขึ้น และช่วยให้ทำงานร่วมกันได้อย่างราบรื่นในขอบเขตของการทำแอพที่พัฒนาตลอดเวลา