ว่าด้วยเรื่องของ 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 น่ะครับ


ถ้า 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

Comments

  1. ว่าด้วยเรื่องของ Git Bash+Github+Bitbucket >>>>> Download Now

    >>>>> Download Full

    ว่าด้วยเรื่องของ Git Bash+Github+Bitbucket >>>>> Download LINK

    >>>>> Download Now

    ว่าด้วยเรื่องของ Git Bash+Github+Bitbucket >>>>> Download Full

    >>>>> Download LINK Qw

    ReplyDelete

Post a Comment

Popular posts from this blog

interpreter กับ compiler ต่างกันยังไง?

Source file not compile Dev C++ win 8, win 8.1 , win10

LTE CAT3/4/6 + มือถือ 4G ซื้อให้ดีต้องดูถึง Network Technology Bands