- การติดตั้ง Git
- การใช้งาน Git เบื้องต้น เพื่อการจัดการเวอร์ชันโปรแกรมของเรา
- การใช้เว็บไซต์ GitHub
- การอัพโหลดโปรเจ็ค Git ขึ้นสู่ GitHub เพื่อใช้งานร่วมกับคนอื่น
- การใช้คำสั่งมีประโยชน์ต่างๆ เช่น git blame, git bisect, ...
- มีความคุ้นเคยกับโค้ดโปรแกรม (ไม่จำเป็นต้องเขียนเป็น)
- มีความกระตือรือร้นที่จะฝึกฝนทักษะ, ถาม, และค้นหา
การใช้ระบบ version control ให้เป็น เป็นสิ่งสำคัญมากสำหรับเหล่านักพัฒนาอย่างเรา มันจะช่วยให้การทำโปรเจ็คใหญ่ๆ หรือโปรเจ็คที่ใช้เวลานาน (แค่ใช้เวลา 1 อาทิตย์ก็ถือว่านานแล้ว) สำเร็จได้ง่ายขึ้น
โดยเฉพาะโปรเจ็คที่มีคนยุ่งเกี่ยวมากกว่าหนึ่งคนยิ่งจำเป็นต้องใช้ version control อย่างมาก
ในคอร์สนี้จะสอนตั้งแต่การติดตั้ง Git จนถึงการใช้งานกับโปรเจ็คตัวอย่างจริงๆ สอนให้รู้ถึงเหตุผลว่าทำไมถึงต้องใช้ version control
git คือระบบ version control ที่นิยมที่สุดในปัจจุบัน เป็นโปรเจ็ค open source ที่ถูกริเริ่มโดย Linus Torvalds (ผู้สร้าง Linux OS) มีโค้ดมากมายที่ใช้ git ในการจัดการเวอร์ชัน ถ้าคุณเป็นนักพัฒนา มันเป็นสิ่งที่หลีกเลี่ยงไม่ได้เลยว่าคุณจะต้องใช้งาน Git และ GitHub ให้เป็น
- ผู้ที่อยากเรียนรู้วิธีใช้ Git และ GitHub แบบใช้งานได้จริง (hands-on)
- ผู้ที่มีปัญหาเขียนโปรแกรมติดบัค แต่ไม่รู้ว่าบรรทัดไหน
- ผู้ที่อยากจะเผยแพร่ผลงานตัวเองให้ขึ้นไปอยู่บน GitHub (ไม่จำเป็นว่าต้องเป็นโค้ดโปรแกรม)
- ผู้ที่เขียน text หรือ code เป็นประจำ และอยากจัดการสิ่งเหล่านี้ให้เป็นระเบียบ
- ผู้ที่อยากจะทำงานเขียนโค้ดร่วมกับคนอื่นอย่างมีระบบ
- ผู้ที่อยากนำโปรเจ็ค open source ที่อยู่บน GitHub ของคนอื่นมาใช้ แต่ทำไม่เป็น
- ผู้ที่อยากช่วย contribute โค้ดสู่โปรเจ็ค open source บน GitHub
- ผู้ที่เริ่มตระหนักว่า Dropbox หรือ Google Drive นั้นไม่เหมาะกับการ backup code เท่ากับ GitHub หรือ BitBucket
- version control คืออะไร?
- รู้จักหาความแตกต่างของไฟล์ text ด้วยคำสั่ง diff และ fc
- เยี่ยมชมโปรเจ็ค (repository) คนอื่นบนเว็บไซต์ GitHub
- การติดตั้ง Git
- ดาวน์โหลดโปรเจ็คคนอื่นจาก GitHub ด้วย git clone
- การใช้คำสั่ง git log เพื่อดูประวัติ commit
- การใช้คำสั่ง git diff เพื่อดูความแตกต่างโค้ด
- การใช้คำสั่ง git checkout เพื่อย้อนดูโค้ดในอดีต
- git repository หน้าตาเป็นอย่างไร?
- การสร้าง repository ด้วย git init
- การตรวจสอบสถานะ working directory ด้วย git status
- การเพิ่มไฟล์เข้าสู่ staging area ด้วยคำสั่ง git add
- การใช้คำสั่ง git commit และข้อแนะนำการเขียนข้อความ
- การใช้คำสั่ง git diff แบบขั้นสูง
- แนวคิดการแตกสาย commit ด้วย Branch
- วิธีสร้าง Branch ด้วยคำสั่ง git branch
- แนวคิดการเข้าถึงได้ของ commit (Reachability)
- แนวคิดของการรวมไฟล์ (Merging concepts)
- การ merge ด้วยคำสั่ง git merge
- ปัญหาที่เกิดขึ้นได้จากการ merge (merge conflict)
- การแก้ปัญหา merge conflict
- สมัครสมาชิก GitHub
- แนวคิดของการอัพโหลด repository สู่ GitHub
- การใช้คำสั่ง git remote
- การใช้คำสั่ง git push เพื่ออัพโหลด repository
- การแก้ไขไฟล์บน GitHub โดยตรง
- การใช้คำสั่ง git pull
- การ fork repository บน GitHub แล้ว clone ลงเครื่องตัวเอง
- branch ประหลาดชื่อ origin/master มาจากไหน
- การ push หรือ pull เมื่อ commit บน GitHub และบนเครื่องนั้นขัดกัน (มี conflict)
- การใช้คำสั่ง git fetch
- การอ่าน git status สำหรับ remote (ahead, behind, up-to-date, diverged)
- fast-forward merge
- การทำ Pull Request
- การอัพเดท Pull Request
- ทำอย่างไรเมื่อ Pull Request มีการเกิด conflict
- วิธีอัพเดท fork ของเราให้ up-to-date กับ upstream
- git blame
- git bisect
- git cherry-pick
- git rebase
- การตั้งค่า alias ให้กับคำสั่งต่างๆ
ไม่มีครับ อันนี้เป็นร่างคอร์สที่ผมเคยคิดจะทำเมื่อหลายปีมาแล้ว เพราะ git เป็นเครื่องมือที่นักพัฒนาทุกคนต้องใช้เป็น แต่หลายคนกลับไม่เคยใช้งานมัน
แต่ผมก็ล้มเลิกโปรเจ็คนี้ไป ไม่ได้ทำคอร์สสอนออกมาครับ จำไม่ได้เหมือนกันว่าเพราะอะไร น่าจะเพราะขี้เกียจ 555
แต่ปัจจุบันน่าจะมีคนทำสอนแล้วครับ ลองหาดูได้