บทความนี้น่าจะเป็นประโยชน์สำหรับมือใหม่ที่เพิ่งจะเข้ามาใช้ git ส่วนพวกมือเก่าๆ น่าจะไม่มีปัญหาอะไรมากเท่าไหร่ เพราะมันก็เป็นคำสั่งพื้นฐานที่เราใช้กันประจำอยู่แล้ว คนที่รู้แล้วก็ดีไป คนที่ไม่รู้ ก็ถือเป็นการศึกษาเพิ่มเติม เพราะมันจะทำให้เราสามารถใช้งาน git ในชีวิต Dev ของเราได้อย่างดี และมีประสิทธิภาพมากขึ้นน่ะเออ
Git คืออะไร ส่วนนี้เป็นส่วนสำคัญที่นักพัฒนาต้องทำความเข้าใจ เพราะหากว่า ตัวนักพัฒนามีความเข้าใจว่า Git คืออะไร มีการทำงานอย่างไร ก็จะส่งผลให้สามารถใช้งาน Git ได้อย่างมีประสิทธิภาพมากยิ่งขึ้นไปอีก
Git คือ Tool ที่เอาไว้ใช้บันทึกการทำงานของโปรเจคของเรา ในลักษณะของเวอร์ชั่น (Version Control) ทำให้เราสามารถสร้างเวอร์ชั่น และ ย้อนกลับไปดูเวอร์ชั่นต่างๆของโปรเจคได้ทุกเมื่อ รวมถึงสามารถดูได้ว่าใครเป็นคนแก้ไขไฟล์นั้นๆ บรรทัดไหน เมื่อไหร่ ได้อีกด้วย
เริ่มได้สักที
โดยพื้นฐานแล้ว git มีคำสั่งที่หลากหลายมากมาย ให้อธิบายคงไม่หมด เพราะชีวิตจริงเราก็ไม่ได้ใช้ทุกคำสั่งหรอก ขอยกตัวอย่างแค่คำสั่งที่ตัวผมเองเคยใช้ละกัน
git init
คำสั่ง git init เป็นคำสั่งที่เอาไว้สร้าง git repository ในเครื่องของเรา โดยจะสร้างโฟลเดอร์ .git ขึ้นมาใน path directory ที่เรากำหนดไว้ โดยโฟลเดอร์จะ hidden อยู่
git clone
คำสั่ง git clone เป็นคำสั่งที่เอาไว้ใช้กรณีที่เราต้องการคัดลอก repository จาก remote repo มายัง local repo คล้ายๆกับการ ดาวโหลดโปรเจคจากออนไลน์มายังเครื่องเรานี่ละครับ
git add
คำสั่ง git add เป็นคำสั่งที่ใช้ติดตามการเปลี่ยนแปลงของไฟล์ เพื่อให้ไฟล์ไปอยู่ในสถานะจาก unstaged เป็น staged และพร้อมที่จะ commit ต่อไป
Git Life Cycle (สถานะของไฟล์)
unstaged : คือสถานะของไฟล์ที่เราทำการแก้ไข แต่ยังไม่พร้อมเอาขึ้น git
staged : คือสถานะของไฟล์ที่เราพร้อมที่จะเอาขึ้น git แล้ว
untracked : คือสถานะของไฟล์ที่ยังไม่ถูก track พบได้ในไฟล์ที่เพิ่งสร้างขึ้นใหม่
deleted : คือสถานะของไฟล์ที่เรา track ไว้ แต่ตอนนี้เราไม่ต้องการทำการลบไปแล้ว
git commit*****
คำสั่ง git commit เป็นคำสั่งทำการยืนยันการเปลี่ยนแปลงจากการ add
หรือทำการ update HEAD ที่ local repository นั่นเอง
แต่ไม่ได้เปลี่ยนแปลงที่ remote repository นะ
ทำการ commit จากสิ่งที่ถูกเพิ่มมาจากคำสั่ง git add เท่านั้น
อธิบายง่าย ๆ คือ
git add คือการนำของใส่กล่อง
git commit คือการปิดกล่องเมื่อของในกล่องครบตามที่ต้องการ
git status
คำสั่ง git status เป็นคำสั่ง ใช้ตรวจสอบสถานะของ local repository ว่าเป็นอย่างไร
มีอะไรเพิ่มเข้ามาใหม่
มีอะไรแก้ไข
มีอะไรลบออกไป
เป็นคำสั่งที่ใช้งานบ่อยสุด ๆ
git pull
คำสั่ง git pull เป็นคำสั่ง เมื่อมี push ก็ต้องมี pull
สำหรับดึงการเปลี่ยนแปลงล่าสุดจาก remote repository มายัง local repository
git push
คำสั่ง git push เป็นคำสั่ง สำหรับส่งการเปลี่ยนแปลงหรือ commit ที่ local repository ไปยัง remote repository
git log
คำสั่ง git log เป็นคำสั่ง สำหรับดูประวัติเปลี่ยนแปลง บน local repository เช่น
มีใครทำอะไรบ้าง
ในช่วงเวลาหนึ่ง ๆ มีอะไรเปลี่ยนแปลงบ้าง
แต่ละการเปลี่ยนแปลงเป็นอย่างไร
git branch
คำสั่ง git branch เป็นคำสั่ง สำหรับจัดการ branch ต่าง ๆ
โดยปกติแล้ว git repository ต้องมี 1 branch เสมอ
ถ้าสังเกตุคือ master branch นั่นเอง
แต่สามารถลบได้นะ ถ้ามี branch มากกว่า 1
ซึ่งเรื่องของการจัดการ branch เป็นสิ่งสำคัญมาก ๆ
ดังนั้นต้องตกลงและจัดการให้ดี
มิเช่นนั้นปัญหาเรื่อง conflict หรือข้อขัดแย้งต่าง ๆ จะมากมาย
ส่งผลให้ต้องใช้เวลาในการ merge หรือรวม code มากและวุ่นวาย
git merge
คำสั่ง git merge เป็นคำสั่ง ใช้รวมความเปลี่ยนแปลงที่ได้มาจาก branch 2 อัน มาเป็น branch เดียวกัน นั่นคือใช้รวมไฟล์จาก branch ที่ระบุ มายัง branch ปัจจุบันนั่นเอง
ส่งท้าย
สำหรับบทความนี้ ขอจบเพียงเท่านี้ก่อน แต่เท่านี้ก็น่าจะเพียงพอสำหรับมือใหม่สุดๆ แล้วละผมว่า ตอนนี้ถือว่ารู้จักคำสั่งต่างๆ พอสมควรเพียงพอต่อการนำไปใช้แล้ว ระหว่างนี้ก็ลองเล่นไปเรื่อยๆ มันต้องฝึกฝน เรียนรู้ใช้งานจริง ถึงจะชำนาญ ถ้ามันผิดพลาด เราก็แค่ลบ แล้ว Clone ใหม่ ลองดูครับ สู้ๆ สำหรับมือใหม่
ขอให้สนุกกับการทดลอง :)
ref