GIT (Version Control)
วันนี้มีโอกาสได้เข้าร่วมงาน Git with Workshop one-day crash course โดย คุณ Tomz จาก Agoda ณ Stream I.T. Consulting Ltd. วันที่ 17 พ.ค. 2558 09.30 – 16.00
หัวข้อ คอร์สเทรนของวันนี้
Git with Workshop one-day crash course
1) Introduction to Git
2) Tools
Client side ( Git bash (command line), SourceTree,TortoiseGit)
Server side ( Gitlab)
Free 3 ways merge Tools
3) Install and Configure Git for Windows
== Local ==
4) Create local and shared Git repos
Add, Remove & Commit Files to repos
5) Working with History
6) Code sharing Model
7) Branching, Tag, Merging, Rebase
8) Handling Conflicts (drama)
9) reset, Chery-pick
= Remote =
– Clone
– Push, Pull, Fetch, Diff
– Branch Remote Repos
โดย คอร์สเทรน จะแบ่งเป็น 2 ช่วง เช้า-บ่าย
คอร์สช่วงเช้า
คุณTomz (วิทยากรที่ให้ความรู้เรื่อง GIT ในครั้งนี้) พูดถึง Introduction to Git (ส่วนนี้ไปหาอ่านเพิ่มเติมได้นะครับ) ต่อด้วยเรื่อง Tools ที่ใช้ประกอบด้วย
Tools ที่ใช้พัฒนาทางฝั่ง client
- Git bash (command line) (พื้นฐานจพเป็นของติดตั้ง)
- SourceTree (เครื่องมือ GUI สำหรับใช้งานการทำงานของ GIT เครื่องมือนี้ง่ายดีครับผมแนะนำ)
- TortoiseGit (เครื่องมืออีกตัวที่ใช้งาน คู่กับ GIT ได้แต่ไม่ได้พูดถึง เพราะขึ้นกับเวลา เน้นไปทางการใช้งานผ่าน command promt จะทำให้จำได้ดีกว่า)
Tools ที่ใช้ทางฝั่ง Server side
- Gitlab (ทำหน้าที่คล้ายกับ github ไปลองเล่นใช้งานได้จาก https://github.com/ มีเวอชั่นฟรีใช้งานได้)
แนะนำการติดตั้งและตั้งค่า Git ให้ใช้งานได้ สำหรับ windown และ linux
และเมื่อวิทยากรพร้อม เครื่องมือพร้อม เรามาลุยกันเลย
เริ่มแรกให้สร้าง Directory เก็บก่อนโดยหลัก ๆ คุณ Tomz จะเน้นไปทาง command promt คือพิมพ์คำสั่งโดยไม่ผ่าน GUI
- สร้าง directory เก็บ =>
"mkdir hello"
- เข้าไปใน directory =>
"cd hello"
- สร้าง repository =>
"git init"
- สร้างไฟล์ เพื่อใช้ทดสอบ =>
"cat > hello.txt"
- นำไฟล์ทดสอบเข้า repository =>
"git add hello.txt"
(ขั้นตอนนี้เหมือนการนำไฟล์มาพักรอการ push) - นำไฟล์ขึ่น server พร้อมแนบคอมเม้น เพื่อการติดตาม =>
"git commit -m "create new file for test""
เราก็จะได้ code ที่ไปเก็บไว้ใน repository ของ git เรียบร้อย นอกคำสั่งพื้นฐานเหล่านี้ยังมีคำสั่ง พิเศษเพื่อช่วยในการใช้งาน GIT ให้ดียิ่งขึ้น
"git status"
(เพื่อดูสถานะ ปัจจุบันของการทำงาน GIT)"git log"
(ดูประวัติการทำงาน) หรือ"git log --oneline --abbrev-commit --all --graph --decorate"
ก็ได้- ฯลฯ มีอีกเยอะครับคำสั่งผมก็เพิ่งเริ่มใช้งานเอาไปเท่านี้ก่อน อยากรู้เพิ่มเติมตามไปดูที่ http://git-scm.com/doc ได้
คอร์สช่วงบ่าย
การนำ clone repository จาก server มาที่เครื่อง (ในที่นี้จะขอใช้ github ครับเป็นที่เก็บ code ส่วนกลาง)
- ไปสร้าง repository ก่อน (ต้องทำการสมัครสมาชิกก่อน ท่านที่ยังไม่มี account จึงจะสามารถใช้งานได้)
- เมื่อสร้างเสร็จ
- คำสั่งจะแยกออกเป็น 2 แบบ
– แบบที่ต้องสร้าง new repository ใหม่ code เรายังไม่ได้สร้าง (ยังไม่ได้ใช้คำสั่ง git init
)
echo # git-workshop-1 >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/pool13433/git-workshop-1.git git push -u origin master
– แบบที่ repository แล้ว
git remote add origin https://github.com/pool13433/git-workshop-1.git git push -u origin master
เหล่านี้คือส่วนหนึ่งที่ผมได้จากงานนี้ แต่ยังมีอีกเยอะมาก(ผมจดไม่ทัน ความจำผมก็ไม่ค่อยดี 😥 ) การเข้าคอร์สเทรนครั้งนี้ทำให้รู้ความแตกต่างระหว่างการควบคุมเวอร์ชั่นของโค๊ดแบบ เก่า ๆ ผมเคยใช้แต่ svn แต่พอได้เรียน GIT วันนี้จะเริ่มให้ที่ทำงานมาใช้ GIT บ้างแล้ว