top of page

ถึงเวลาโชว์ผลงาน! ผ่าน Version Control System และ GitHub

Version Control System คือระบบสำหรับการจัดการ version ของการพัฒนาโปรแกรม ช่วยให้จัดการโปรแกรมที่มีการพัฒนาอย่างต่อเนื่อง และส่งเสริมการทำงานร่วมกันหลายคนได้อย่างมีประสิทธิภาพ ทั้งนี้เรายังสามารถใช้เวปอย่าง Github ซึ่งเป็น VCS ที่ใช้โชว์ผลงานที่เราสร้างขึ้นมาได้อีกด้วย

โชว์ให้โลกรู้ว่าเขียน Python เป็นด้วยการอัพขึ้น GitHub
โชว์ให้โลกรู้ว่าเขียน Python เป็นด้วยการอัพขึ้น GitHub

 

หัวข้อในบทความนี้


 

Version Control System คืออะไร? ทำไมต้องใช้


เพราะการพัฒนาต่อเนื่องเป็นเรื่องปกติของการเขียนโปรแกรม


เส้นทางสำคัญกว่าจุดมุ่งหมายโดยเฉพาะในเรื่องการเขียนโปรแกรม เพราะโดยธรรมชาติการเขียนโปรแกรมพูดถึง "การสร้าง" สิ่งต่างๆ ให้เกิดขึ้น ดังนั้นวิธีการสร้าง เส้นทางการพัฒนานี่แหละ ที่เป็นเนื้อหากลักของการเขียนโปรแกรม


ซึ่งการพัฒนาโปรแกรมใดๆ เราจะมีการพัฒนาเป็นส่วนๆ ค่อยๆ ประกอบส่วนต่างๆ เหล่านี้เข้าด้วยกันรวมกันเป็นระบบที่เราสนใจ ซึ่งกว่าจะสำเร็จเป็นระบบนึง อาจมีลำดับขั้นในการพัฒนาจำนวนมาก เช่น การสร้างฟังก์ชันที่ต้องใช้ หรือแม้แต่การสร้างส่วนการทำงานย่อยๆ ใดๆ เสร็จก่อนส่วนอื่นๆ


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


ซึ่งเราจะใช้โปรแกรมที่เรียกว่า Version Control System เข้ามาติดตามการพัฒนาอย่างมีประสิทธิภาพ


ประโยชน์ และการทำงานของ VCS (Version Control System)


การบันทึกติดตาม version ของการพัฒนา ช่วยให้เราสามารถแก้ไขปัญหา ทำงานร่วมกันบนโปรเจคเดียวกันได้อย่างมีประสิทธิภาพ

การบันทึก version ไว้ในที่เดียว ช่วยให้การทำงานร่วมกันในโปรเจคที่พัฒนาต่อเนื่องมีประสิทธิภาพ
การบันทึก version ไว้ในที่เดียว ช่วยให้การทำงานร่วมกันในโปรเจคที่พัฒนาต่อเนื่องมีประสิทธิภาพ

โดย VCS จะเก็บตัวโปรแกรมเอาไว้ที่ repository หรือสถานที่เก็บโปรแกรม ที่จะมีการกำกับ version เอาไว้เพื่อใช้เป็นแหล่งข้อมูลหนึ่งเดียวสำหรับการเรียกใช้งานตัวโปรแกรมในอนาคต


VCS เก็บข้อมูลตัวโปรแกรมซึ่งควรเป็นที่เดียวที่เก็บตัวข้อมูลเอาไว้เพื่อใช้งานร่วมกัน
VCS เก็บข้อมูลตัวโปรแกรมซึ่งควรเป็นที่เดียวที่เก็บตัวข้อมูลเอาไว้เพื่อใช้งานร่วมกัน

เมื่อมีการเรียกใช้งานหรือ มีความต้องการนำโปรแกรมมาจัดการ ใช้งาน อัพเดท แก้ไขต่างๆ VCS จะทำการดึงข้อมูลจาก repository และนำมาคัดลอกไว้บนคอมพิวเตอร์เพื่อใช้งาน


เมื่อมีการเรียกใช้ตัวโปรแกรม เพื่อปรับแต่ง อัพเดท VCS จะส่งโปรแกรมใน version ปัจจุบันให้
เมื่อมีการเรียกใช้ตัวโปรแกรม เพื่อปรับแต่ง อัพเดท VCS จะส่งโปรแกรมใน version ปัจจุบันให้

เมื่อทำงานเรียบร้อย จะมีขั้นตอนการส่งข้อมูลกลับไปยัง VCS ซึ่ง VCS จะทำการรวมการเปลี่ยนแปลง และอัพเดทก่อนส่งกลับไปเก็บเป็นโปรแกรมในไฟล์เดียวเพื่อป้องกันการซ้ำซ้อน


เมื่อการแก้ไขเรียบร้อย จะมีการส่งโปรแกรมที่ปรับแต่งด้วยแต่ละผู้ใช้ มาให้ VCS จัดการ
เมื่อการแก้ไขเรียบร้อย จะมีการส่งโปรแกรมที่ปรับแต่งด้วยแต่ละผู้ใช้ มาให้ VCS จัดการ

เมื่อ VCS จัดกาความแตกต่างเรียบร้อย VCS จะทำการบันทึกไฟล์เอาไว้


เมื่อ VCS จัดการความแตกต่าง และรวมเป็นโปรแกรมที่มีอัพเดทจากทุกคนเรียบร้อย VCS จะจัดเก็บโปรแกรมเอาไว้เป็น version ถัดไป
เมื่อ VCS จัดการความแตกต่าง และรวมเป็นโปรแกรมที่มีอัพเดทจากทุกคนเรียบร้อย VCS จะจัดเก็บโปรแกรมเอาไว้เป็น version ถัดไป

 

Git: Version Control System สำหรับคอมพิวเตอร์ของเรา


Git เป็นโปรแกรมที่เราใช้ทำ Version Control ที่เราติดตั้งลงบนคอมพิวเตอร์ของเราเพื่อติดตามการพัฒนาโปรแกรมที่เกิดขึ้นบนเครื่องของเรา


ติดตั้ง git


โปรแกรม git เป็นโปรแกรมพื้นฐานสำหรับการใช้จัดการ version control โดยเราจะติดตั้งไว้บนคอมพิวเตอร์ของเรา และในบทความนี้จะได้เรียกใช้สำหรับการทำงานกับ GitHub ในหัวข้อถัดไป


ดาวโหลด Git ได้ที่นี่ https://git-scm.com/



 

GitHub: Remote ที่ใช้เก็บโค้ด แสดงผลงาน


GitHub เป็นเวปไซต์ที่ใช้สำหรับการนำโค้ดที่เราต้องการติดตามการพัฒนาไปฝากไว้เพื่อเป็น remote หรือที่เก็บโค้ดบน cloud สำหรับการทำงานร่วมกันหลายคน หรือการใช้เพื่อแสดงผลงานของเรา


เปิดบัญชี GitHub


การใช้งาน GitHub จะต้องมีการเปิดบัญชีเพื่อใช้บริการ และหากฝากโค้ดลงไปใน GitHub แล้วเราก็จะต้องเข้าบัญชีที่เปิดไว้เพื่อเข้าถึงโค้ดที่ฝากไว้ในบญชี


เปิดบัญชีเพื่อเริ่มใช้งานได้ที่นี่ https://github.com/signup


เปิดบัญชี GitHub ฟรี เพื่อเริ่มใช้งาน
เปิดบัญชี GitHub ฟรี เพื่อเริ่มใช้งาน

สร้าง repository


reporitory เป็นที่สำหรับการบันทึกโค้ดลงไป เป็นเหมือนโฟลเดอร์ที่ใช้บันทึกไฟล์ และโปรแกรมต่างๆ ลงไป ซึ่งเราสามารถใช้คำสั่งเพื่อดึงข้อมูลเหล่านี้ไปใช้ได้ทีหลัง และ repository ยังสามารถใช้เป็นที่เก็บโปรแกรมทั้งหมดเพื่อติดตามผลไว้ในที่เดียว ไม่ให้เกิดความซ้ำซ้อน


สร้าง repository เพื่อเป็นที่เก็บโค้ด
สร้าง repository เพื่อเป็นที่เก็บโค้ด

 

ขั้นตอนการทำงานกับ repo บนคอมพิวเตอร์


สำหรับการทำงานกับ repository บน github จะผ่านกระบวนการทำงานคร่าวๆ ดังนี้ คือ


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

  2. การเปลี่ยนแปลงต่างๆ จะถูกตรวจจับโดย git

  3. เราจะต้องทำการ "stage" การเปลี่ยนแปลงเพื่อยืนยันการเปลี่ยนแปลงที่เกิดขึ้น

  4. เพื่อบันทึกการเปลี่ยนแปลงเราจะทำการ commit เพื่อยืนยันการเปลี่ยนแปลง

  5. และสุดท้ายเราจะทำการ "push" การเปลี่ยนแปลงทั้งหมดขึ้นไปรวมกับ repository เดิมบน github


1) ติดตั้ง Anaconda


โดยโค้ดที่เราฝากเราจะสามารถนำมาใช้งานได้ผ่านคำสั่งที่เราเขียนผ่าน Anaconda Powershell ใน windows หรือ terminal ใน Mac


ซึ่งในบทเรียนของ Ultimate Python จะขอพูดถึงโปรแกรมที่เป็นส่วนหนึ่งของ Anaconda Platform ซึ่งผู้เรียนสามารถใช้โปรแกรมอื่นๆ ทดแทนได้


ดาวน์โหลด Anaconda ได้ที่นี่ https://www.anaconda.com/products/individual



2) สร้างโฟลเดอร์ และไปยังโฟลเดอร์ที่ต้องการใช้งาน


GitHub repository เป็นที่ที่ใช้บันทึกโค้ด สำหรับการใช้งาน จะต้องมีการ "clone" ข้อมูลลงมายังคอมพิวเตอร์ โดยเราจะสร้างเป็นโฟลเดอร์บบนคอมพิวเตอร์ และเลือกไปทำงานกับโฟลเดอร์ที่เราเลือกด้วยโปรแกรม Anaconda Powershell Prompt (หรือ command line อื่นๆ)


ทำงานกับโปรแกรม Anaconda Powershell Prompt สั่งคำสั่งเพื่อไปยังโฟลเดอร์ที่ต้องการทำงานด้วยด้วยคำสั่ง cd ตามด้วย 'ที่อยู่ของโฟลเดอร์'


cd 'ที่อยู่ของโฟลเดอร์'

สร้างโฟลเดอร์ และไปยังโฟลเดอร์นั้นด้วย Anaconda Powershell Prompt
สร้างโฟลเดอร์ และไปยังโฟลเดอร์นั้นด้วย Anaconda Powershell Prompt

3) เชื่อมต่อกับ repository


สำหรับการทำงานกับ repository บน GitHub เราจะต้องนำที่อยู่ของ repository มา และใช้คำสั่งบน command line เพื่อคัดลอก หรือ "clone" repository ให้มาอยู่บนคอมพิวเตอร์ของเรา เพื่อเริ่มบันทึกโค้ดลงน GitHub


ที่อยู่ของ repository


สำหรับการทำงานกับ repository ใดสามารถไปที่หน้าของ repository นั้น กดปุ่ม code สีเขียว และเลือก copy ตัวที่อยู่ออกมาได้เลย


คัดลอก repository มาลงบนคอมพิวเตอร์


สำหรัการคัดลอกเราจะใช้คำสั่งจาก git ที่ได้ลงก่อนหน้านี้ไปคัดลอกโปรแกรมมาจาก repository มาทำงานด้วย ผ่านคำสั่ง git clone ตามด้วยที่อยู่ของ repository


git clone 'ที่อยู่ของ repository'

git clone คัดลอก repository ลงมายังคอมพิวเตอร์
git clone คัดลอก repository ลงมายังคอมพิวเตอร์

4) ทำงานกับ repository บนคอมพิวเตอร์


เมื่อทำการ clone เรียบร้อยเราจะทำการย้ายโฟลเดอร์ที่ทำงานด้วยไปยังโฟลเดอร์ของ repository ที่ clone มา


สำหรับการย้ายไปทำงานกับโฟลเดอร์ที่อยู่ในโฟลเดอร์ที่ทำงานด้วยปัจจุบัน สามารถใช้คำสั่ง cd ตามด้วยชื่อโฟลเดอร์เพื่อเลือกเข้าไปยังโฟลเดอร์ที่สนใจได้เลย


cd 'ชื่อโฟลเดอร์'

การย้ายไปทำงานในโฟลเดอร์ด้วยการระบุโฟลเดอร์
การย้ายไปทำงานในโฟลเดอร์ด้วยการระบุโฟลเดอร์

สำหรับการย้ายไปทำงานกับโฟลเดอร์ใดๆ สามารถทำได้โดยการระบุที่อยู่เต็มๆ ของโฟลเดอร์ที่สนใจทำงานด้วยด้วยการใช้คำสั่ง cd ตามด้วยที่อยู่ของโฟลเดอร์


cd 'ที่อยู่ของโฟลเดอร์'

การระบุที่อยู่ของโฟลเดอร์ใดๆ เพื่อใช้งานโฟลเดอร์ที่สนใจ
การระบุที่อยู่ของโฟลเดอร์ใดๆ เพื่อใช้งานโฟลเดอร์ที่สนใจ

5) การแก้ไขข้อมูล และบันทึกลง github


status-add-commit


สำหรับการทำงานกับ repo เบื้องต้น จะผ่านคำสั่ง 3 คำสั่ง เบื้องต้นคือ status, add, commit


status


เมื่อมีการเปลี่ยนแปลงไฟล์ คำสั่ง หรือข้อมูลต่างๆ ใน repo ที่ลงอยู่ในคอมพิวเตอร์ การเปลี่ยนแปลงจะถูกตรวจจับ และเราสามารถดูการเปลี่ยนแปลงเบื้องต้นได้จากคำสั่ง git status


git status

จะเห็นการเปลี่ยนแปลงที่ยังไม่ได้จัดการเป็นชื่อไฟล์ที่แสดงเป็นสีแดง

ตัวอย่างการเพิ่มโปรแกรมลง repo และตรวจสอบด้วย git status
ตัวอย่างการเพิ่มโปรแกรมลง repo และตรวจสอบด้วย git status

add


สำหรับข้อมูลที่มีการเปลี่ยนแปลงเราจะต้องทำการ "stage" เพื่อเตรียมการเปลี่ยนแปลงสำหรับการอัพเดทไปยัง repo บน github ซึ่งเราสามารถใช้คำสั่ง git add . (. คือสัญลักษณ์ของตัวแทนของการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้น หากไม่ต้องการเลือกทั้งหมดจะต้องระบุเป็นชื่อไฟล์ทีละไฟล์ที่เกิดการเปลี่ยนแปลง)


git add .

เมื่อทำการ add เรียบร้อย จะมีปรากฎชื่อไฟล์เป็นสีเขียว ที่แสดงให้เห็นว่าการเปลี่ยนแปลงในชื่อไฟล์สีเขียวพร้อมสำหรับการดำเนินการต่อแล้ว

stage การเปลี่ยนแปลงด้วย add
stage การเปลี่ยนแปลงด้วย add

commit


สำหรับข้อมูลที่เตรียม stage แล้ว เราสามารถยืนยันการเปลี่ยนแปลงโดยการ commit การเปลี่ยนแปลงเหล่านั้นเพื่อเตรียมบันทึกไปยัง repo บน github โดยผ่านคำสั่ง git commit -m "ข้อความอธิบายการเปลี่ยนแปลงที่กำลังจะบันทึก"


git commit -m "ข้อความอธิบายการเปลี่ยนแปลงที่กำลังจะบันทึก"

ยืนยันการเปลี่ยนแปลงทั้งหมด พร้อมใส่คำบรรยายด้วย commit
ยืนยันการเปลี่ยนแปลงทั้งหมด พร้อมใส่คำบรรยายด้วย commit

เมื่อ commit แล้ว เมื่อเรียก git status จะไม่ปรากฎชื่อเป็นสีแดง (ยังไม่ได้ stage) และไม่ปรากฎชื่อสีเขียว (ยังไม่ได้ commit)


เมื่อเช็ค git status จะเห็นการเปลี่ยนแปลงที่พร้อมนำขึ้น github
เมื่อเช็ค git status จะเห็นการเปลี่ยนแปลงที่พร้อมนำขึ้น github

ดูการเปลี่ยนแปลง (commit) ที่เกิดขึ้นแล้ว


ดูการเปลี่ยนแปลงที่มีการเปลี่ยนแปลงและบันทึกแล้วแบบย่อยด้วยคำสั่ง git log --oneline


git log --oneline

คำสั่งนี้จะแสดงการ commit ล่าสุดที่เกิดขึ้นแต่ละครั้งใน 1 บรรทัด จะเห็นการ ข้อความที่เราเขียนใน commit จะเข้ามาเป็นส่วนหนึ่งให้เราติดตามได้ง่ายๆ ว่าครั้งนั้นเราทำการบันทึก หรือเปลี่ยนแปลงข้อมูลอะไรไปบ้างแต่ละครั้ง

ดูการเปลี่ยนแปลงล่าสุดด้วยคำสั่ง git log --oneline
ดูการเปลี่ยนแปลงล่าสุดด้วยคำสั่ง git log --oneline


6) บันทึกการเปลี่ยนแปลงไปยัง repo บน github


สำหรับการเปลี่ยนแปลงที่ commit แล้วสามารถบันทึกการเปลี่ยนแปลงไปยัง github repo ด้วยคำสั่ง git push เพื่ออัพเดทเนื้อหาใน repo ด้วยการเปลี่ยนแปลงที่เกิดขึ้นบนคอมพิวเตอร์


git push

บันทึกการเปลี่ยนแปลงลง repo ด้วย git push
บันทึกการเปลี่ยนแปลงลง repo ด้วย git push

7) นำการเปลี่ยนแปลงจาก github ลงมาใช้


เมื่อ github มีการเปลี่ยนแปลงไปจากข้อมูลที่มีอยู่บนคอมพิวเตอร์ เราสามารถใช้คำสั่ง git pull เพื่อทำการดึงการเปลี่ยนแปลง ลงมาประกอบกับข้อมูลบนคอมพิวเตอร์


git pull

ดึงข้อมูลที่เปลี่ยนแปลงจาก github มาลงบนคอมพิวเตอร์ด้วย git pull
ดึงข้อมูลที่เปลี่ยนแปลงจาก github มาลงบนคอมพิวเตอร์ด้วย git pull

3,913 views1 comment

1 Comment






Like
bottom of page