เมื่อปีที่แล้วมี developer ท่านนึงคนชวนเล่น Gogs จำไม่ได้ว่าคุยเรื่องอะไรกัน แต่ก็น่าสนใจดี Gogs เป็น self-hosted Git Services เขียนด้วยภาษา Go ซึ่งเจ้าตัวนี้หน้าตาและฟังก์ชั่นหลายอย่างคล้ายกับ Github (เวอร์ชั่นเก่า) ใครเคยใช้ Github คงจะคุ้นเคย

สำหรับท่านที่อยากลอง Gogs สามารถติดตั้งได้หลายวิธีทั้งผ่าน binary, source และ package.io ครั้งนี้มาลองติดตั้งจาก package.io กันดูบ้าง เริ่มจากติดตั้ง repository กันก่อน และติดตั้ง Gogs อ้อ ผมใช้ Ubuntu 14.04 Server 64bits

Continue reading

เนื่องจากมีคนถามเรื่อง Pull Request ใน GitHub มาก็เลยมาเขียนอธิบายกันสักหน่อย การทำงานบน GitHub ก็จะคล้ายๆ กับ version control system ตัวอื่นๆ แต่ใน GitHub จะเพิ่มความสามารถในการขอ merge code จากผู้ใช้อื่นที่ต้องการ contribute feature ใหม่หรือ patch ให้ได้ เรียกว่า Pull Request หากต้องการ Pull Request ตัว contributor จะต้อง Fork โครงการออกมาจากต้นน้ำ (Upstream Project) ก่อน หากแก้ไข bug หรือเพิ่ม feature ใหม่แล้วต้องการ contribute กลับไปยังต้นน้ำ ค่อยขอ Pull Request ผมจะยกตัวอย่างโครงการ Arduino Quadruped Robot โดยผมเป็นเจ้าของโครงการ (Project Owner) และคุณ Andrew เป็น Contributor

เริ่มจากคุณ Andrew สั่ง Fork โครงการ Arduino Quadruped Robot จาก Upstream Project ก่อน กดปุ่ม Fork


Continue reading

Gogs เป็นโปรแกรมที่ใช้สำหรับการให้บริการ Git ภายในเครื่อง Server ส่วนตัวที่พัฒนาขึ้นมาจากภาษา Go สามารถอ่านข้อมูลเพิ่มเติมได้ที่ http://gogs.io/

ติดตั้งฐานข้อมูล MySQL ด้วยคำสั่ง

sudo apt-get -y install mysql-server

กำหนดรหัสผ่านและยืนยันรหัสผ่าน MySQL


Continue reading

ในระบบ Git stores repository จะมี directory ที่ชื่อว่า .git ภายในนั้นจะมีสิ่งที่เรียกว่า git hooks ที่อนุญาติให้คุณสามารถเขียน script เพื่อคุมการทำงานของ workflow ได้ แต่โดยปกติแล้ว Git จะไม่สามารถที่จะ push .git ขึ้นไปยัง repository ได้ นั้นหมายความว่า git hooks ที่ผมจะพูดนั้นทำงานได้เฉพาะบน local เท่านั้น ( แต่โชคไม่ทีเท่าไหร่มีคนสามารถหาช่องเจอ โดยอาศัย case-insensitive filesystems ซึ่งสามารถ push .Git หรือ .GIT ขึ้นไปยัง repository ได้ อ่านเพิ่มเติมได้ที่ CVE-2014-9390 )

มาดูสิ่งที่ git เตรียมไว้ให้ใน git hooks กัน

git hooks

เราสามารถอ่านคำอธิบายการทำงานต่างๆ ของแต่ละไฟล์ได้เลย หากต้องการจะใช้งานให้ลบนามสกุล .sample ออก แล้วทำการ change mode ให้สามารถ execute ได้


Continue reading

ครั้งนี้เราจะมาลองใช้งานบริการที่มีอยู่เดิมอย่าง Git และ Dropbox เพื่อสร้าง Free private repository แบบง่ายๆ โดยไม่เสียสตางค์กัน ก่อนอื่นมาทำความรู้จักกับ Git และ Dropbox กันก่อน Git คือ ระบบควบคุมการแก้ไขข้อมูลย้อนหลัง (revision control systems) อธิบายง่ายๆ ให้พอมองเห็นภาพได้ว่า Git คือ ซอฟท์แวร์ที่ช่วยเราในการสำรองข้อมูล (ฺBackup) ซึ่งการสำรองข้อมูลนี้เองทำให้เราสามารถย้อนกลับไป ณ ช่วงเวลาใดๆของข้อมูลได้ (ในทางเทคนิคแล้ว Git ไม่ได้เป็นแค่เพียงซอฟท์แวร์ในการ Backup ข้อมูล แต่ Git ยังเป็นซอฟท์แวร์ที่ใช้ในการจัดการรุ่นของซอร์สโค้ดอีกด้วย) Dropbox คือ แหล่งเก็บข้อมูลแบบก้อนเมฆ (Cloud storage) อธิบายแบบสั้นๆง่ายๆ ได้ว่า Cloud storage นั่นก็คือแหล่งเก็บข้อมูลบน Internet นั่นแหละครับ

ตอนนี้เรารู้จักกับ Git และ Dropbox กันแล้ว ต่อไปเรามาลองดูวิธีใช้งาน Git ควบคู่กับ Dropbox กันเลยครับ ก่อนอื่นให้เข้าไปที่แฟ้มโปรเจคที่เราอยากใช้ Git ในการควบคุม source code ครับ แล้วทำการรันคำสั่ง

~/project $ git init

เพื่อทำการเริ่มต้น (Initialize) การใช้ Git ขั้นตอนต่อไปคือ ให้เราทำการเพิ่ม (add) โค้ดเราเข้าไปใน Staging area (สำหรับ Staging area ให้จินตนาการง่ายๆว่า มันคือตะกร้าเก็บเอกสารใบนึงที่วางอยู่บนโต๊ะเราครับ)

Continue reading

บทความที่แล้วเราได้รู้จักและติดตั้ง Jenkinsกันไปแล้ว ส่วนบทความนี้ผมขอพูดถึงการเชื่อมจาก My repository มายัง Jenkins ก็แล้วกัน โดยมา repository ที่ว่ามันจาก 3 ที่คือ

  • Local repository
  • Gitlab repository
  • Github repository

ทั้งหมดนี้ใช้ Source Code Management (SCM) ตัวเดียวคือ git เมื่อ Jenkins จะ code ทำการ build ตาม job ที่เขียนไว้ใน Jenkins คุณยังสามารถสั่งให้มันอะไรได้ต่อได้อีกมากมาย ยกตัวอย่างเช่น ต้องการ push ใช้ git server แล้วให้ Jenkins ทำการสั่ง test ( เช่น mvn test ) ทุกๆ ครั้งของการ push หรืออาจจะมองไปไกลกว่านั้นคือ เมื่อ test pass แล้ว ให้ทำการไป deploy ลงบน UAT ได้เลยเป็นต้น


Continue reading

เด็กไอทีรุ่นใหม่ที่ผมเจอส่วนใหญ่มักจะไม่ค่อยคุ้นเคยกับการทำงานผ่าน command line หน้าจอดำๆ มีแต่ตัวหนังสือสักเท่าไร การจะแนะนำให้ใช้งาน git ผ่าน command line ก็ดูเหมือนจะเป็นอะไรที่กล้ำกลืนฝีนทนเสียจริง สำหรับเด็กสมัยนี้

วันนี้เลยมาแนะนำวิธีการใช้งาน Git ง่ายๆ ด้วย Source Tree ซึ่งเป็นซอฟต์แวร์ที่ช่วยจัดการ git repository ของเรา ได้เฉกเช่นเดียวกับการใช้ command line นั่นละ เพียงแต่ใช้งานผ่าน Source Tree GUI แทน

เริ่มต้นเลยคือจะต้องไปดาวน์โหลด Source Tree สำหรับติดตั้งในเครื่องของเราก่อน ในที่นี้ผมดาวน์โหลด Soure Tree เวอร์ชันสำหรับ Windows มาติดตั้งบนเครื่องของผมเอง ที่เว็บไซต์ www.sourcetreeapp.com/download/
Continue reading

อย่างที่รู้กันว่าการสร้าง branch บน git เป็นแนวทางการพัฒนาที่จำเป็นอย่างหนึ่งในการใช้ประโยชน์จาก git ซึ่งหากเป็นการใช้งาน git ผ่าน command line วิธีการสร้าง branch ส่วนตัวผมมักจะชอบใช้คำสั่ง

$ git checkout -b <ชื่อ branch>

และเวลาที่ต้องการสลับการทำงานระหว่าง branch ก็จะใช้คำสั่ง

$ git checkout <ชื่อ branch>

แต่หากต้องการทราบว่าขณะนี้กำลังทำงานอยู่ที่ branch ใด ก็เพียงแค่ใช้คำสั่ง

$ git branch
Continue reading

กรณีที่เราใช้งาน Git ผ่านผู้ให้บริการ ยกตัวอย่างเช่น GitHub นั้น ทางผูัให้บริการเขาอำนวยความสะดวกโดยการมีตัวติดตั้ง GitHub Desktop ให้เราเข้าไปดาวน์โหลด เพื่อให้ผู้ใช้งานสามารถนำไปติดตั้งบนเครื่อง ซึ่งวิธีการใช้งานก็เป็นลักษณะ GUI ซึ่งเข้าใจได้โดยง่าย

วิธีการติดตั้งใช้งาน GitHub Desktop เริ่มต้นโดยการเข้าไปดาวน์โหลด GitHub Desktop ที่เว็บไซต์ https://windows.github.com (สำหรับ Windows)
Continue reading