ว่าด้วยเรื่องของ Git Bash+GitHub+Bitbucket
ช่วงนี้ผมได้มีโอกาสทำโปรเจ็คร่วมกับคนอื่น แต่ปัญหาใหญ่ของเราก็คือ ทำไงให้เรา Sharing code ระหว่างกันได้ มีวิธีใช้งานง่ายๆ และไม่มีปัญหาเกิดขึ้น ดังนั้นผมจึงหาข้อมูล และสรุปตกลงว่าเราจะใช้ "Git" กัน ซึ่งเป็น Full Sharing ที่ง่ายดายมากๆ แล้วมันดีกว่าตัวอื่นยังไงล่ะ ?
- สามารถ commits ซอร์ซโค้ดข้ามไปเครื่องเพื่อนเราได้ ไม่ต้อง commits ไปที่เครื่อง Server
- เร็ว และมีขนาดเล็ก Configuration files ที่อยู่ใน working directory มีขนาดเล็กเมื่อเทียบกับยี่ห้ออื่นๆ
- ง่ายต่อการเรียนรู้ แต่มันใช้ Command Line (ดังนั้นคุณต้องรู้บ้างเล็กน้อยเกี่ยวกับคำสั่งพื้นฐาน Linux เช่น mkdir = สร้างโฟเดอร์ )
- ให้บริการ staging area เป็นพื้นที่เล็กๆ ที่จัดเก็บเฉพาะส่วนที่เราแก้ไขแล้วจัดเรียง index ไว้ เพื่อสะดวกในการ commits เฉพาะส่วน
- มีเว็บที่ให้บริการ GIT ซึ่งเป็น Social Coding สำหรับ developers อย่างพวกเรา เท่าที่ผมลองเล่นดูมีสองตัวคือ GitHub และ Bitbucket
และการทำงานอีกหลายอย่างที่ที่สำคัญคือ
1. การทำงานเกือบทุกอย่างเป็นการทำงานในเครื่องตัวเอง พราะว่าคุณจะมีประวัติการเปลี่ยนแปลงทั้งหมดของโปรเจคอยู่ในเครื่องของคุณอยู่แล้วและพร้อมที่จะทำงานได้ทันที
2. มีความเที่ยงตรง เพราะมีการทำ Checksum แฮช(hash)แบบ SHA-1 คุณจะไม่มีทางที่จะทำข้อมูลสูญหายระหว่างการโยกย้ายหรือรับไฟล์ที่เสียหายโดย Git จะสามารถตรวจพบได้
3. Git เพียงแต่เพิ่มข้อมูล เมื่อคุณกระทำอะไรสักอย่างใน Git เนื้อหาเกือบทั้งหมดนั้นก็จะถูกเพิ่มเข้าไปในฐานข้อมูลของ Git เท่านั้น
4. มีทำงานสามสถานะ คือ ยืนยันแล้ว(committed), ถูกแก้ไข(modified) และ อยู่ในขั้นตอน(staged) ซึ่ง Committed หมายถึงข้อมูลที่ถูกบันทึกเรียบร้อยแล้วในฐานข้อมูลในเครื่องของคุณ Modified หมายถึงไฟล์ของคุณได้ถูกแก้ไขแล้วแต่ยังไม่ได้ยืนยัน(commit)ลงในฐานข้อมูลของคุณ Staged หมายถึงคุณได้ทำเครื่องหมายไว้ที่ไฟล์ที่ถูกแก้ไขในเวอร์ชันปัจจุบันเพื่อที่จะรอการ commit ใน snapshot ถัดไป
โดย Git จะคิดว่าข้อมูลของมันเป็นเสมือนภาพถ่าย(snapshot)ของระบบไฟล์ขนาดเล็กๆ ทุกครั้งที่มีการ commit หรือบันทึกสถานะของโปรเจคลงใน Git มันจะทำการถ่ายภาพของไฟล์ทั้งหมดในตอนนั้นและบันทึกการอ้างอิงไปยัง snapshot นั้น เพื่อให้การจัดเก็บนั้นมีประสิทธิภาพ ถ้าไฟล์ใดที่ไม่ได้มีการเปลี่ยนแปลง Git ก็จะไม่บันทึกไฟล์นั้นอีกครั้ง เพียงแต่จะทำการเชื่อมโยงไปยังไฟล์เดิมที่เคยถูกบันทึกเอาไว้อยู่แล้ว Git จะมองข้อมูล
มาถึงการเตรียมการกันบ้าง สารธยายกันไปยาวนาน อย่างแรกเลย คุณต้องเข้าไป register เว็บที่ให้บริการ GIT ซะก่อน ผมขอยกตัวอย่าง bitbucket.org น่ะครับ
ต่อไปมาในส่วนของโปรแกรมกันบ้าง เข้าไปที่ git-scm.com กด Download ก็จะได้ไฟล์ติดตั้งมาเรียบร้อยยย ที่ผมได้มาเป็น Git-1.8.1.2-preview20130201 โหลดเสร็จก็กดติดตั้งเลย คลิก Next อย่างเดียว ตามประสาคนไทย 5555 จากนั้นเมื่อติดตั้งเสร็จก็จะมี icon Git Bash บนหน้าจอ ลองเปิดดู ถ้าใช้ได้ก็เป็นอันเป็นการเสร็จเรียบร้อย
คราวนี้แหล่ะ จะได้เริ่มใช้งานจริงๆกันแว๊วว
แรกเลยจะต้องเข้า directory งานของเราก่อน (อันนี้คำสั่งพื้นฐาน unix เช่น cd,ls etc..ที่ควรจะรู้อยู่แล้ว)
จากนั้นต้องเซ็ทอัพระบบซะก่อนน
ลองเช็คว่าระบบได้เซ็ทเรียบร้อยหรือยัง ถ้าข้อมูลทั้งสองบรรทัดขึ้นมาแล้วก็แสดงว่าเซ็ทเรียบร้อยโดยใช้คำสั่ง
จากนั้นเซ็ทให้ระบบรู้ว่า directory ที่เราอยู่เนี่ย เราจะใช้อันนี้น่ะ เมื่อเซ็ทเรียบร้อยจะเห็นคำว่า (master) ขึ้นมาทันที
จากนั้นก็ทำการ Remote แจ้งความจำนงว่า directory ที่เราอยู่เนี่ย จะอัพไป Project ที่ Create อันไหนบนเว็บ bitbucket.org
ปล.ถ้าตั้งชื่อ Project เว้นวรรคไว้ git จะแปลงเป็น -
ลองเช็คอีกครั้งนึงว่าได้เซ็ทถูกต้องรึป่าว ถ้ามีบรรทัด remote.origin.url=https://<username>@bitbucket.org/<username>/<project-name>.git ขึ้นมาแล้วแสดงว่าถูกต้อง โดยใช้คำสั่ง
จากนั้นทำการ add (โดยที่ . แทนตำแหน่ง directory ปัจจุบัน) ตามด้วย commit และ push
ถ้าการส่งเสร็จสมบูรณ์ ก็จะขึ้นรายละเอียดมาให้เราเห็น
เพียงเท่านี้ก็เรียบร้อย งานของเราได้ถูกอัพไปแล้ว หรือจะให้ชัวร์ๆ อันเป็นการเสร็จพิธี :)
เท่านี้ก็เรียบร้อยย :D
ข้อมูลอ้างอิงเพิ่มเติม :
ruby.railstutorial.org
bitbucket.org , git-scm.com , honglub.com
- สามารถ commits ซอร์ซโค้ดข้ามไปเครื่องเพื่อนเราได้ ไม่ต้อง commits ไปที่เครื่อง Server
- เร็ว และมีขนาดเล็ก Configuration files ที่อยู่ใน working directory มีขนาดเล็กเมื่อเทียบกับยี่ห้ออื่นๆ
- ง่ายต่อการเรียนรู้ แต่มันใช้ Command Line (ดังนั้นคุณต้องรู้บ้างเล็กน้อยเกี่ยวกับคำสั่งพื้นฐาน Linux เช่น mkdir = สร้างโฟเดอร์ )
- ให้บริการ staging area เป็นพื้นที่เล็กๆ ที่จัดเก็บเฉพาะส่วนที่เราแก้ไขแล้วจัดเรียง index ไว้ เพื่อสะดวกในการ commits เฉพาะส่วน
- มีเว็บที่ให้บริการ GIT ซึ่งเป็น Social Coding สำหรับ developers อย่างพวกเรา เท่าที่ผมลองเล่นดูมีสองตัวคือ GitHub และ Bitbucket
และการทำงานอีกหลายอย่างที่ที่สำคัญคือ
1. การทำงานเกือบทุกอย่างเป็นการทำงานในเครื่องตัวเอง พราะว่าคุณจะมีประวัติการเปลี่ยนแปลงทั้งหมดของโปรเจคอยู่ในเครื่องของคุณอยู่แล้วและพร้อมที่จะทำงานได้ทันที
2. มีความเที่ยงตรง เพราะมีการทำ Checksum แฮช(hash)แบบ SHA-1 คุณจะไม่มีทางที่จะทำข้อมูลสูญหายระหว่างการโยกย้ายหรือรับไฟล์ที่เสียหายโดย Git จะสามารถตรวจพบได้
3. Git เพียงแต่เพิ่มข้อมูล เมื่อคุณกระทำอะไรสักอย่างใน Git เนื้อหาเกือบทั้งหมดนั้นก็จะถูกเพิ่มเข้าไปในฐานข้อมูลของ Git เท่านั้น
4. มีทำงานสามสถานะ คือ ยืนยันแล้ว(committed), ถูกแก้ไข(modified) และ อยู่ในขั้นตอน(staged) ซึ่ง Committed หมายถึงข้อมูลที่ถูกบันทึกเรียบร้อยแล้วในฐานข้อมูลในเครื่องของคุณ Modified หมายถึงไฟล์ของคุณได้ถูกแก้ไขแล้วแต่ยังไม่ได้ยืนยัน(commit)ลงในฐานข้อมูลของคุณ Staged หมายถึงคุณได้ทำเครื่องหมายไว้ที่ไฟล์ที่ถูกแก้ไขในเวอร์ชันปัจจุบันเพื่อที่จะรอการ commit ใน snapshot ถัดไป
โดย Git จะคิดว่าข้อมูลของมันเป็นเสมือนภาพถ่าย(snapshot)ของระบบไฟล์ขนาดเล็กๆ ทุกครั้งที่มีการ commit หรือบันทึกสถานะของโปรเจคลงใน Git มันจะทำการถ่ายภาพของไฟล์ทั้งหมดในตอนนั้นและบันทึกการอ้างอิงไปยัง snapshot นั้น เพื่อให้การจัดเก็บนั้นมีประสิทธิภาพ ถ้าไฟล์ใดที่ไม่ได้มีการเปลี่ยนแปลง Git ก็จะไม่บันทึกไฟล์นั้นอีกครั้ง เพียงแต่จะทำการเชื่อมโยงไปยังไฟล์เดิมที่เคยถูกบันทึกเอาไว้อยู่แล้ว Git จะมองข้อมูล
มาถึงการเตรียมการกันบ้าง สารธยายกันไปยาวนาน อย่างแรกเลย คุณต้องเข้าไป register เว็บที่ให้บริการ GIT ซะก่อน ผมขอยกตัวอย่าง bitbucket.org น่ะครับ
ถ้า Create ได้รูปตามด้านล่าง ก็เป็นอีนเสร็จพิธีเบื้องต้น อิอิ
ต่อไปมาในส่วนของโปรแกรมกันบ้าง เข้าไปที่ git-scm.com กด Download ก็จะได้ไฟล์ติดตั้งมาเรียบร้อยยย ที่ผมได้มาเป็น Git-1.8.1.2-preview20130201 โหลดเสร็จก็กดติดตั้งเลย คลิก Next อย่างเดียว ตามประสาคนไทย 5555 จากนั้นเมื่อติดตั้งเสร็จก็จะมี icon Git Bash บนหน้าจอ ลองเปิดดู ถ้าใช้ได้ก็เป็นอันเป็นการเสร็จเรียบร้อย
คราวนี้แหล่ะ จะได้เริ่มใช้งานจริงๆกันแว๊วว
แรกเลยจะต้องเข้า directory งานของเราก่อน (อันนี้คำสั่งพื้นฐาน unix เช่น cd,ls etc..ที่ควรจะรู้อยู่แล้ว)
จากนั้นต้องเซ็ทอัพระบบซะก่อนน
$ git config --global user.name "Your Name" $ git config --global user.email your.email@example.com
ลองเช็คว่าระบบได้เซ็ทเรียบร้อยหรือยัง ถ้าข้อมูลทั้งสองบรรทัดขึ้นมาแล้วก็แสดงว่าเซ็ทเรียบร้อยโดยใช้คำสั่ง
$ git config --list
จากนั้นเซ็ทให้ระบบรู้ว่า directory ที่เราอยู่เนี่ย เราจะใช้อันนี้น่ะ เมื่อเซ็ทเรียบร้อยจะเห็นคำว่า (master) ขึ้นมาทันที
$ git init
จากนั้นก็ทำการ Remote แจ้งความจำนงว่า directory ที่เราอยู่เนี่ย จะอัพไป Project ที่ Create อันไหนบนเว็บ bitbucket.org
$ git remote add origin https://<username>@bitbucket.org/<username>/<project-name>.git
ปล.ถ้าตั้งชื่อ Project เว้นวรรคไว้ git จะแปลงเป็น -
ลองเช็คอีกครั้งนึงว่าได้เซ็ทถูกต้องรึป่าว ถ้ามีบรรทัด remote.origin.url=https://<username>@bitbucket.org/<username>/<project-name>.git ขึ้นมาแล้วแสดงว่าถูกต้อง โดยใช้คำสั่ง
$ git config --list
จากนั้นทำการ add (โดยที่ . แทนตำแหน่ง directory ปัจจุบัน) ตามด้วย commit และ push
$ git add . # of single file is git add <name-file>
$ git commit -m "Initial commit"
$ git push -u origin --allจากนั้นลองเช็คสถานะการอัพโดยใช้คำสั่ง
$ git log
ถ้าการส่งเสร็จสมบูรณ์ ก็จะขึ้นรายละเอียดมาให้เราเห็น
เพียงเท่านี้ก็เรียบร้อย งานของเราได้ถูกอัพไปแล้ว หรือจะให้ชัวร์ๆ อันเป็นการเสร็จพิธี :)
อ้ออ เกือบลืม ส่วนใครจะดึงข้อมูลลงมา(Clone) ก็เพียงเปลี่ยนคำสั่ง add เป็น clone ตามนี้เลยย
$ git clone https://<username>@bitbucket.org/<username>/<project-name>.gi
เท่านี้ก็เรียบร้อยย :D
ข้อมูลอ้างอิงเพิ่มเติม :
ruby.railstutorial.org
bitbucket.org , git-scm.com , honglub.com
ว่าด้วยเรื่องของ Git Bash+Github+Bitbucket >>>>> Download Now
ReplyDelete>>>>> Download Full
ว่าด้วยเรื่องของ Git Bash+Github+Bitbucket >>>>> Download LINK
>>>>> Download Now
ว่าด้วยเรื่องของ Git Bash+Github+Bitbucket >>>>> Download Full
>>>>> Download LINK Qw