Sunday, April 26, 2009

แนะนำ GIT

GIT เป็นระบบจัดการซอร์สโค้ด (Source Code Management) หน้าที่เดียวกันกับ CVS, SVN ทั้งหลาย หรือมีการเรียกอีกอย่างหนึ่งว่า Revision Control

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

เหตุที่ผมชอบ GIT
- ทำงานแบบ Off-line ได้ ไม่จำเป็นต้องติดต่อกับ Repository server เวลาสั่ง commit, checkout
- ไม่รกรุงรัง เหมือน SVN เพราะ GIT มีไดเรคทอรี .git มาเพียงไดเรคทอรีเดียว ต่างกับ SVN ที่สร้าง .svn ในทุกๆไดเรคทอรีของโปรเจคท์

หากสนใจ อยากทดลองใช้ ผมจะแนะนำสั้นๆ เร็วๆ ตามนี้
ผมขอข้ามขั้นตอนการติดตั้งไปก่อนนะครับ เพราะมันไม่ได้ยาก กด Next ไปเรื่อยๆ ก็เสร็จแล้ว ผมข้ามจั้นตอนการสร้างโปรเจคท์ใหม่เลยดีกว่า
เริ่มจากมองหาไดเรคทอรี ที่คุณต้องการใช้งาน GIT ผมสมมติเป็น

D:\www\project.localhost

จากนั้น เรียก GIT Shell ขึ้นมา แล้วไปยังไดเรคทอรี่โปรเจคท์ของเรา

git01-win-git-shell.

จากนั้นสั่งสร้าง Repository ด้วยคำสั่ง git init

git02-git-init 

แล้วจะมีไดเรคทอรี .git ในโปรเจคท์ของเรา

git03-git-directory 

จากนั้นลองสร้างไฟล์ขึ้นมา สมมติผมสร้างไฟล์ index.php ขึ้นมา และข้างในมีโค้ด

git04-index-code 

กลับไปที่ GIT Shell พิมพ์คำสั่ง git status

git05-git-status-st

แล้วก็จะเห็นสถานะแบบนี้
git06-git-status-result

กด q เพื่อออกจากโหมดนั้น แล้วพิมพ์คำสั่ง git add index.php
git07-git-add-index 

จากนั้น พิมคำสั่ง git commit -m 'Start repository'
git08-commit-1st

สั่ง git status ดูอีกรอบ
git09-git-status-after-commit

แล้วผมก็กลับไปแก้ไขโค้ดให้เป็นตามนี้
git10-mod-code-01

สั่ง git status อีกรอบ
git11-git-status-after-mod-code 

จะเห็นว่ามีการ modified อยู่หนึ่งไฟล์ ถ้าอยากรู้ว่า มีการเปลี่ยนแปลงอะไรบ้าง ก็สั่ง git diff และตามด้วยชื่อไฟล์ ที่ต้องการดูความแตกต่าง หากไม่ระบุ ระบบจะแสดงความแตกต่างของทุกไฟล์ที่มีการเปลี่ยนแปลง
git12-git-diff-index
จากภาพ สีแดงคือส่วนที่หายไป สีเขียวคือส่วนที่เพิ่มเข้ามา

ทดลอง commit รอบ ด้วย git add และ git commit
git13-git-commit-2nd 

*สิ่งสำคัญคือ ต้องสั่ง git add ก่อน git commit ทุกครั้ง*
ทีนี้ลองสั่ง git log เพื่อดูประวัติการ commit

git14-git-log

ถ้าอยากย้อนกลับไปยังจุดที่ commit ก่อนหน้านี้ สั่ง git checkout แล้วตามด้วย หมายเลขที่ต้องการย้อนกลับไป ตัวอย่างเช่น
git15-git-checkout

กลับไปดูที่ไฟล์ซอร์สโค้ด
git16-source-code-after-checkout

ถ้าสั่ง git log อาจจะดูยากไปนิด ลองใช้ gitk ดูครับ
git17-call-gitk

หน้าตา gitk
git18-gitk
จุดเหลือง คือจุดที่ checkout ออกมา

คงจะช่วยให้มองเห็นภาพขึ้นมาบ้างนะครับ ต้องทดลองใช้ดู ถึงจะเข้าใจและใช้เป็น

รอบหน้า ผมจะพูดต่อไปในเรื่อง Work flow การสร้าง Branch, Merge, Solve conflict

วันนี้เอาลิงค์ไปก่อนครับ

 

- ต้นฉบับ http://git-scm.com/
- GIT for Windows http://code.google.com/p/msysgit/

รวม Tutorial จากเว็บต่างๆ
- http://github.com/blog/333-easy-git
- http://www.webdesignerdepot.com/2009/03/intro-to-git-for-web-designers/
- http://book.git-scm.com/index.html
- http://peepcode.com/products/git (แบบเสียเงินนะครับ)

Wednesday, April 8, 2009

IWearYourShirt.com โอกาสเป็นของผู้ที่มีความคิดแปลกใหม่เสมอ

ยังจำ The Million Dollar Homepage กันได้มั๊ยครับ อาจจะนานไปหน่อย แต่ก็เป็นตำนานที่เล่าทีไรแล้วก็ยังทึ่งในความคิดของเค้า
คิดได้ยังไง แบ่งหน้าเว็บเพจเป็นพิกเซลย่อยๆ แล้วขายให้กับเว็บต่างๆ รวยเงินล้านไม่รู้เรื่องเลย



มาวันนี้ ผมเจอกระทาชายนายหนึ่ง หัวใสซันไลปิ้งไม่แพ้กัน


IwearYourShirt.com


เป็นใครไม่รู้ ยังไม่ได้ค้นรายละเอียดดู แต่แนวคิดของเค้าก็คือ ในปี ๒๐๐๙ นี้ เค้าจะใส่เสื้อยืดแต่ละวันไม่ซ้ำกัน ๑ วัน ๑ ตัว
และจะถ่ายรูปตัวเองลง Social Network ทุกวัน ถ่ายวิดีโอลง Youtube ทุกวัน คุยสดๆ ผ่านทาง ustream.tv ทุกวัน



แน่นอนว่าเสื้อยืดที่เค้าใส่ มันไม่ธรรมดา ต้องเป็นเสื้อยื้ดที่มีข้อความสำหรับประชาสัมพันธ์ จะเป็นเว็บไซต์อะไรก็ได้ที่คุณอยากโปรโมท ส่วนค่าบริการ ก็คิดไม่แพงครับ วันที่คุณต้องการให้นายคนนี้ใส่เสื้อยืด เป็นวันที่เืท่าไหร่ของปี ก็จ่ายไปเท่านั้น อย่างเช่นวันที่ ๑ ม.ค. ก็ราคา ๑ ยูเอสดอลลาร์ วันต่อไปก็เพิ่มขึ้นไปเรื่อยๆ ขึ้นอยู่กับว่าวันที่ต้องการให้เค้าใส่เสื้อนั้น วันสุดท้ายของปี ก็จ่าย ๓๖๕ เหรียญ
นี่ถ้าเขาสามารถขายได้ครบ ๓๖๕ วัน รายรับทั้งหมดก็จะเป็น 66,795 USD หรือราวๆ ๒.๓ ล้านบาท

แล้วใครมันจะบ้ามาซื้อวะ?

อย่าดูถูกไป เพราะขณะที่ผมเขียนบล๊อกอยู่นี้ ถูกจองไปจนถึงเดือนกันยายนแล้ว เท่ากับว่ามีเงินล้านในกระเป๋าเรียบร้อยแล้ว



เค้าไม่ธรรมดาจริงๆ