Skip to main content

เคยเขียนโปรแกรมร่วมกับคนอื่นกันมั้ยครับ ? ปกติแล้วเราทำยังไงกัน แบ่งงานกันยังไง แยกกันทำคนละฟังก์ชันคนละส่วนรึเปล่า ? แล้วเวลาที่มีการแก้โค้ดในส่วนเดียวกันจะจัดการยังไง? 

“เคยมั้ย .. เวลาที่อยากจะทดลองอะไรบางอย่างแต่ก็กลัวโค้ดที่เขียนไปแล้วจะพัง ? จนต้องก็อปไฟล์แยกโฟลเดอร์เอาไว้ พอสุดท้ายจะเอาไปใช้งานจริงก็เริ่มไม่แน่ใจว่าอันไหนที่เป็นเวอร์ชันล่าสุด”

ถ้าเขียนโค้ดไปซักระยะนึงยังไงก็ต้องพบเจอปัญหาเหล่านี้วนซ้ำๆอย่างแน่นอน จึงได้มีเครื่องมือที่เป็นดั่งพระเจ้าเข้ามาโปรดเหล่าโปรแกรมเมอร์ ให้หลุดพ้นจากลูปที่โหดร้ายเหล่านี้ นั่นก็คือ Git นั่นเอง

Git คือ … ?

Git เป็นเครื่องมือที่ช่วยจัดการเวอร์ชันของโค้ดให้กับเรา โดยจะเก็บประวัติว่าไฟล์แต่ละไฟล์ถูกสร้าง/ลบ/แก้ไขโดยใคร เมื่อไหร่ และอย่างไรเอาไว้ทั้งหมด ทำให้เราสามารถติดตามการเปลี่ยนแปลงของโค้ดได้ตลอด หรือแม้กระทั่งย้อนเวลาโค้ดกลับไปก่อนตอนที่จะพังก็ยังทำได้

ดาวน์โหลด และ ติดตั้งยังไง ?

สำหรับการติดตั้งนั้นก็สามารถเข้าไปดาวน์โหลดในเว็บไซต์ของ Git ได้เลย มีตัวติดตั้งให้ติดตั้งกันง่ายๆ โหลดไฟล์จากหน้าเว็บได้เลยgit-download

จากนั้นก็เปิดไฟล์

แล้วก็กด install เป็นอันเรียบร้อย

สำหรับคนที่ใช้ Ubuntu ก็ติดตั้งด้วยคำสั่งด้านล่างนี้ได้เลย

apt-get install git

หรือ linux อื่นๆก็ลองเข้าไปดูคำสั่งได้จากหน้าเว็บของ Git ได้เช่นกัน Git

หลังจากติดตั้งแล้วก็ต้องทำการตั้งค่ากันซักเล็กน้อยเพื่อใช้งาน คือตั้งชื่อกับอีเมลนั่นเอง

git config --global user.name "ชื่อที่จะใช้"
git config --global user.email "กับอีเมลที่จะใช้"

อย่าลืม double quote “  ” ครอบชื่อกับอีเมลด้วยนะ !!!

คำสั่งพื้นฐานมีอะไรบ้าง ?

มาดูคำสั่งพื้นฐานที่ต้องใช้ใน Git กันบ้างดีกว่า

  • git Init
    เป็นคำสั่งที่มีไว้ใช้งานที่โฟลเดอร์งานนั้นเช่น

    cd workspace
    git init

    การทำงานคือเข้าไปในโฟลเดอร์ workspace แล้วให้ git ทำงานที่ตำแหน่งปัจจุบัน ก็คือ workspace นั่นเอง

  • git add
    ใช้สำหรับเพิ่มไฟล์เข้าไปใน stage (เป็นการระบุว่าต้องการที่จะสร้างความเปลี่ยนแปลงไฟล์ไหนใน git บ้าง) เช่น

    git add main.html

    หรือถ้าต้องการเพิ่มทั้งโฟลเดอร์

    git add .
  • git status
    ใช้สำหรับตรวจสอบว่ามีไฟล์ไหนที่ยังไม่ได้ add หรือมีการเปลี่ยนแปลงแล้วยังไม่ถูกจัดการบ้าง

    git status
  • git reset
    เป็นการย้อน version ไฟล์ให้กลับไปอยู่ในสภาพเดิมก่อนที่จะ add ไฟล์เข้าสู่ stage

    git reset
  • git commit
    ยืนยันการเปลี่ยนแปลงไฟล์ที่ถูก add ลงใน stage โดยสามารถใส่ comment โดยการเติม -m ด้านหลัง เช่น

    git commit -m “change function b”
  • git clone
    เป็นการก้อปปี้โปรเจคจำลองมาจากโปรเจคหลัก โดยเราจะสามารถเปลี่ยนแปลงไฟล์ในโปรเจคจำลองนี้ได้โดยที่ไม่กระทบโปรเจคหลัก (ไฟล์จำลองที่เราทำการเปลี่ยนแปลงจะเรียกว่า local repository และไฟล์หลักที่อยู่คนละที่จะเรียกว่า remote repository)

    git clone
  • git push
    เป็นการส่งไฟล์ที่ commit แล้วเข้าสู่ remote repository

    git push
  • git fetch
    ใช้ตรวจสอบว่าไฟล์ ในlocal กับremote มีความแตกต่างกันหรือไม่ ไฟล์ไหนใหม่กว่า หรือล้าสมัยอยู่กี่ commit (ซึ่งตรงนี้ comment จะช่วยเราได้มากว่า commit นี้เราทำอะไรลงไป เพราะฉะนั้นควร comment อยู่เสมอและต้องเขียนให้สื่อความหมาย)

    git fetch
  • git pull
    เป็นการดึงไฟล์ที่มีการเปลี่ยนแปลงใน remote มาเปลี่ยนแปลงใน local ซึ่งเป็นการใช้คำสั่ง git fetch ตามด้วย git merge

    git pull

Branch และ คำสั่งที่ต้องใช้

จากคำสั่งพื้นฐานที่ผ่านมาก็น่าจะพอนึกภาพออกว่าจะใช้งาน Git ยังไง จะย้อนเวอร์ชันยังไง แต่ว่าถ้าอยากจะทดลองอะไรใหม่ๆ หรืออยากจะเขียนฟังก์ชันบางอย่างเพิ่ม แต่ก็ไม่อยากให้กระทบกับโค้ดที่ใช้งานได้แล้ว และก็ไม่อยากให้วุ่นวายกับคนอื่นๆเวลาย้อนเวอร์ชัน เราจะทำยังไงดี? 

เราจึงมี Branch มาเพื่อจัดการเรื่องเหล่านี้นั่นเอง ซึ่งการใช้งานก็ตามชื่อของมันเลยคือเป็นการแตกสาขาออกมานั่นเอง จะเพื่อทดลองอะไรบางอย่าง หรือเพื่อแยกกันพัฒนาฟีเจอร์ของโปรแกรมก็ได้เช่นกัน 

มาดูคำสั่งที่ใช้เกี่ยวกับการใช้งาน branch กัน

เริ่มจากดู branch ที่มีอยู่ทั้งหมดด้วยคำสั่ง

git branch

โดยปกติแล้วจะมี branch หลักอยู่เพียงอันเดียวคือ master

ถ้าเราจะสร้าง brach ขึ้นมาใหม่ก็เพียงใช้คำสั่ง

git branch my_new_branch

พอลองดู brach ด้วยคำสั่ง “git branch” อีกครั้งก็จะพบว่ามีชื่อ my_new_branch เพิ่มขึ้นมาแล้ว

จะสังเกตว่ามีเครื่องหมายดอกจัน * หน้า master นั่นแสดงว่าตอนนี้เราทำงานอยู่ใน branch master นั่นเอง ถ้าหากเราต้องการย้ายไป my_new_branch ก็ใช้คำสั่ง

git checkout my_new_branch

ลองดูรายชื่อ branch อีกทีก็จะเห็นว่าดอกจันย้ายมาอยู่หน้า my_new_branch แล้ว

ถ้าต้องการลบ branch ก็เพียงพิมพ์คำสั่ง

git branch --delete som_branch_to_delete

ทีนี้เราจะทำอะไรใน brach นี้ก็ไม่กระทบกับ branch อีกต่อไป เช่นใน branch master เรามีไฟล์อยู่ 1 ไฟล์ชื่อ index.html จากนั้นเราลองย้ายไป my_new_branch ด้วยคำสั่ง “git checkout my_new_branch”

แล้วสร้างไฟล์เพิ่มอีกไฟล์นึงชื่อ hello_test.html และทำการ commit ให้เรียบร้อย

เมื่อกลับไปยัง master อีกครั้งก็จะเห็นว่ามีแต่ไฟล์ index.html ไม่มี hello_test.html เพราะว่าเราสร้างไว้คนละ branch นั่นเอง

ถ้าเราต้องการจะรวม branch เข้ามาใน master ก็ทำได้ด้วยการ merge นั่นเอง ซึ่งนอกจากจะใช้ในการรวม local กับ remote repository ก็ยังใช้ในการรวม branch ได้ด้วย มาลองรวม my_new_branch เข้ากับ master กันเลย

เริ่มจากต้องอยู่ใน branch master ก่อนถ้ายังไม่อยู่ก็ใช้คำสั่ง “git chekout master” ให้เรียบร้อย และพิมพ์คำสั่ง

git merge my_new_branch

ไฟล์ที่อยู่ใน my_new_branch ก็จะเข้ามาอยู่ใน master แล้ว

ทั้งหมดนี่ก็คือพื้นฐานเกี่ยวกับ git ที่ควรจะรู้เอาไว้ครับ แต่จริงๆแล้วนอกจากการใช้ git ผ่าน command line แบบนี้แล้วก็ยังมีโปรแกรม git ที่มีหน้าตาสวยงามให้เราใช้กันด้วยนะ ซึ่งถึงจะใช้แบบนั้นก็ยังมีพื้นฐานเป็นคำสั่งที่เอามาให้รู้จักกันในวันนี้อยู่ดี ถ้าใครอยากลองใช้ดูก็เข้าไปเลือกหาได้จากลิงค์นี้เลย GUI Clients

หากคุณสนใจพัฒนา สตาร์ทอัพ แอปพลิเคชัน
และ เทคโนโลยีของตัวเอง ?

อย่ารอช้า ! เรียนรู้ทักษะด้านดิจิทัลเพื่ออัพเกรดความสามารถของคุณ
เริ่มตั้งแต่พื้นฐาน พร้อมปฏิบัติจริงในรูปแบบหลักสูตรออนไลน์วันนี้

Developer

Author Developer

More posts by Developer

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

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

  • คุกกี้สำหรับการติดตามทางการตลาด

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

บันทึกการตั้งค่า