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

นักพัฒนาที่ใช้ git ส่วนใหญ่ จะนิยมใช้บริการจากผู้ให้บริการอย่าง GitHub หรือ BitBucket แต่ในองค์กรที่ให้ความสำคัญกับความปลอดภัย อาจจะเลือกที่จะตั้งเซิร์ฟเวอร์เพื่อใช้ในการบริหารจัดการซอร์สโค้ดเอง
Continue reading

ความแตกต่างระหว่าง local repository กับ remote repository นั้น ก็เหมือนกับการที่เราทำงานบนเครื่องของเรา กับการทำงานโดยข้อมูลอยู่บนเซิร์ฟเวอร์ ซึ่งอย่างหลังทำให้มีความปลอดภัย และทำงานร่วมกันกับบุคคลอื่นได้ง่ายกว่า

เริ่มต้นโดยการทดลองใช้คำสั่ง git init เพื่อสร้าง repository บน local ก่อน
Continue reading

การใช้งาน Git ผ่าน Remote Repository ร่วมกันนั้น ก่อนหน้านี้เราพูดถึงการทำงานแบบ Centralized Workflow ไปแล้ว ในคราวนี้จะพูดถึงการทำงานอีกลักษณะหนึ่ง ซึ่งก็ไม่ได้แตกต่างจาก Centralized Workflow นัก เพียงแต่ผู้พัฒนา พัฒนาโดยแตก Branch Feature บน local repository แล้วจึง merge แล้ว push ไปยัง Remote Repository

เริ่มต้นจากนักพัฒนามากกว่า 1 คน ที่ทำงานบน remote repository เดียวกัน เริ่มโดยการใช้คำสั่ง git clone เพื่อคัดลอกมาทำงานบน local repository
Continue reading

เกี่ยวกับ Git Workflow นั้นให้มองภาพการพัฒนาซอฟต์แวร์ที่มีนักพัฒนาหลายคนร่วมในโครงการ การพัฒนาฟีเจอร์ การ release version ใหม่ การแก้ bug ซึ่ง git workflow ก็คือการนำสิ่งเหล่านั้นมาพัฒนาในรูปแบบของ workflow โดยใช้ git ช่วยในการพัฒนา

ยกตัวอย่างการพัฒนาซอฟต์แวร์ตามผังการพัฒนาในรูปตัวอย่างด้านล่าง


Continue reading

ในการพัฒนาซอฟต์แวร์เราจำเป็นต้องเก็บซอร์สโค้ดไว้ในเวอร์ชั่นคอนโทรล (version control) เพื่อที่บันทึการเปลี่ยนแปลงต่างๆ ในซอร์สโค้ดของเราและการทำงานร่วมกับทุกคนในทีม ซึ่งซอฟต์แวร์ประเภทเวอร์ชั่นคอนโทรลที่นิยมกันในปัจจุบันนั้นก็คือ Git และก็มีคลาวด์เซอร์วิสที่ควบคุมการทำงาน Git อีกทีเพื่อเราทำงานกับคนในทีมได้สะดวกยิ่งขึ้นด้วย เช่น GitHub, Bitbucket เป็นต้น เซอร์วิสอย่าง GitHub หรือ Bitbucket มีบางอย่างที่ไม่ตอบโจทย์ระดับองค์กรเหมือนกัน เช่น ไม่รองรับจำนวนคนในองค์กรได้ การใช้งาน repository อาจจะไม่เพียงพอ หรืออยากเก็บซอร์สโค้ดเป็นความลับในองค์กรทำให้เราไม่อยากฝากไว้กับผู้ให้บริการภายนอก เป็นต้น เพราะฉะนั้นจึงมีคนคิดค้นให้เซอร์วิสพวกนี้ให้ทำงานได้สำหรับองค์กร ซึ่งมีชื่อว่า GitLab
Continue reading

การที่นักพัฒนาหลายๆ คนใช้งาน Git บน Repository เดียวกัน สามารถทำได้ โดยกระบวนการหนึ่งเราเรียกว่า การทำงานแบบ Centralized Workflow

ตัวอย่างที่จะแสดงนี้ มีนักพัฒนา 3 คน ที่ทำงานบน Remote Repository เดียวกัน โดยทั้ง 3 คน ได้ใช้คำสั่ง git clone เพื่อนำ Remote Repository มาคัดลอกเป็น Local Repository เพื่อทำงานในเครื่องตนเอง
Continue reading

ครั้งที่แล้วนำเสนอเรื่อง GitLab ไปมีพาดพิงเรื่อง CI (Continuous Integration) ไปนิดหน่อย ซึ่ง GitLab เองก็มีโครงการ GitLab CI เช่นกัน พูดถึง CI หลายท่านที่ใช้เครื่องมือแบบนี้อยู่แล้วก็คงต้องบอกว่า Jenkins เจ๋งสุด! แหมใช้ GitLab แล้วจะไปทำ CI ใน Jenkins ก็จะดูแปลกๆ มาใช้ GitLab CI กันดีกว่า :) GitLab CI แบ่งโครงการออกเป็น 2 ส่วน คือ

  • GitLab CI หน้าเว็บหลักของ GitLab CI
  • GitLab CI Runner เป็นส่วน Builder สามารถแยกหรืออยู่ร่วมกับ GitLab CI ได้

ครั้งนี้เราจะมาติดตั้ง GitLab + GitLab CI กัน โดยใช้วิธีที่ง่ายมากมากมาก โดยใช้ตัวติดตั้งของ Bitnami สำหรับวิธีปกติดูได้ที่เว็บโครงการ GitLab CI ครับ

ขั้นแรกดาวน์โหลด GitLab มาก่อน

wget http://downloads.bitnami.com/files/stacks/gitlab/6.9.2-1/bitnami-gitlab-6.9.2-1-linux-x64-installer.run

จากนั้น chmod ให้ execute ได้

chmod +x bitnami-gitlab-6.9.2-1-linux-x64-installer.run

ติดตั้งด้วยคำสั่ง

./bitnami-gitlab-6.9.2-1-linux-x64-installer.run


Continue reading

มีคำถามกลับมาเกี่ยวกับ Git อีกเรื่องคือจะหาเรียน Git ได้ที่ไหน จะทำงานกับ Git ได้ยังไง ทำงานแบบ Collaboration ได้อย่างไร ใช้ Workflow แบบไหนดี หากคุณมีคำถามเหล่านี้ แนะนำให้ไปเรียนเลยครับ น่าเสียดายที่หลายสถาบันการศึกษาไม่ได้สอน Git แต่ใช่ว่าจะไม่มีแหล่งเรียน Git นะครับ แหล่งเรียน Git ที่ผมแนะนำมีดังนี้

ได้แหล่งเรียนเยอะเลย อย่ารอช้าลองเข้าไปศึกษาดูนะครับ

แนะนำ GitLab ไปเมื่อครั้งที่แล้ว ก็มีคำถามกลับมาเกี่ยวกับ Git หลายคำถามเลย ก็เลยขอทะยอยตอบผ่าน Blog ละกันครับ เรื่องแรกที่มักจะถามเข้ามากันบ่อยมากคือ ใช้ Git Command ไม่คล่อง มีโปรแกรมคลิ๊กง่ายๆ มั๊ย เอ่อ… ปกติผมก็ใช้ Git Command นะครับ ไม่เคยใช้ GUI สักที ในเว็บ Git SCM ในหน้าดาวน์โหลดแนะนำ Git GUI อยู่หลายตัว ลองเข้าเลือกดูได้ครับ สำหรับผมแนะนำ 2 ตัวนี้ครับ

  • GitHub GUI มีเวอร์ชั่นบน Windows, Mac
  • SourceTree มีเวอร์ชั่นบน Windows, Mac เช่นกัน

เครื่องมือ 2 ตัวนี้ฟรีครับ ยกเว้น SourceTree จะมีให้ลงทะเบียนนิดหน่อย แต่ไม่ยุ่งยาก ข้อดีของการใช้ GUI คงเป็นในเรื่องของการจัดการไฟล์ การ merge ไฟล์ และดู branch ครับ ถ้าชอบใช้ GUI ก็ลองติดตั้งใช้กันดูได้ :)
Continue reading

ผมมักโดนถามคำถามเกี่ยวกับเครื่องมือที่ผมใช้งานอยู่บ่อยครั้ง ผมมักก็ตอบว่า Git, GitHub และตามด้วยประโยคที่ว่า “Private Project ต้องเสียเงิน ถ้าเป็น OpenSource Project ใช้ฟรี” ก็เลยมีหลายท่านถามว่า ​”เอาแบบ Private Project ไม่ต้องเสียเงินได้ไหม” งั้นแนะนำให้ใช้ GitLab เลยครับ เจ้า GitLab เหมาะสำหรับคนที่ใช้ GitHub มาก เพราะการใช้งานบนเว็บเหมือนกัน ไม่นับบน command line นะครับ :P นอกจากจะติดตั้งในหน่วยงานได้แล้วยังสามารถสร้าง Private Project ได้แบบไม่ต้องเสียเงินด้วย ตอบโจทย์เลยใช่มั๊ยครับ GitLab มีด้วยกัน 2 รุ่น คือ

  • GitLab Comminuty
  • GitLab Enterprise

ดูความแตกต่างของแต่ละรุ่นได้ที่หน้าเว็บ GitLab กันได้ นอกจากนี้ยังมี Jitlab CI ด้วย ซึ่งเราสามารถผูก GitLab กับ GitLab CI ได้ด้วย เอาไว้วันหลังจากมาเล่าให้ฟังว่าเล่นยังไง สำหรับวิธีการติดตั้ง GitLab นั้นมีหลายวิธี แต่ผมขอเลือกวิธีง่ายระดับมาก โดยใช้ GitLab Omnibus (มีวิธีแบบง่ายมากๆ อยู่ขอไม่กล่าวถึงละกันนะครับ) ลองมาติดตั้ง GitLab Community เล่นกันครับ


Continue reading