Skip to main content
0
GitHubLibrary / Frameworkไม่มีหมวดหมู่

Git พื้นฐานสุด ๆ จบในหน้าเดียว

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

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

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

Develeper

Author Develeper

More posts by Develeper

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

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

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

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

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

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

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

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