10 คำสั่ง Git ที่นักพัฒนาซอฟแวร์ต้องรู้จัก

Git เป็นซอฟต์แวร์โอเพ่นซอร์สและช่วยให้นักพัฒนาจัดการซอร์สโค้ดเวอร์ชันต่างๆ ได้อย่างง่ายดาย ซึ่งมันทำให้เรารู้ได้ว่าใครทำอะไร เมื่อไหร่ และทำไม

ปัจจุบัน Git กลายเป็นเครื่องมือที่นักพัฒนาทุกคนต้องมี และการรู้คำสั่ง Git ถือเป็นสิ่งสำคัญ ถึงแม้จะมีพวก GUI มาให้ใช้แล้วก็ตาม

สำหรับนักพัฒนาในการใช้ Git ให้เต็มศักยภาพ มีคำสั่ง Git หลายร้อยคำสั่ง แต่มีคำสั่งที่สำคัญเพียงไม่กี่คำสั่งเท่านั้นที่ใช้เป็นประจำ

1. git init

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

วิธีใช้

$ git init

และยังสามารถกำหนดโปรเจคไปได้เลย

$ git init <your repository name>

2. git clone

git clone จะทำการดาวน์โหลดซอร์สโค้ดจาก Git Server เช่น Gitlab หรือ Github ลงมาในเครื่องของเราโดยอัตโนมัติ

วิธีใช้

$ git clone <git-repo-url>

3. git branch

git branch ช่วยให้เราสามารถเพิ่ม branch ใหม่และ ดู branch ที่มีอยู่ทั้งหมด และลบ branch ออกไปได้

วิธีใช้

สร้างใหม่

$ git branch <branch-name>

ดู branch ในเครื่องเราและบน Git server

$ git branch -a

ดู branch เฉพาะในเครื่องเรา

$ git branch 
# หรือ
$ git branch --list

ลบ branch

$ git branch -d <branch-name>

เปลี่ยนชื่อ branch

$ git branch -m <branch-name> <new-branch-name>

4. git checkout

คำสั่ง git checkout ช่วยให้เราสามารถสลับไปยัง branch ที่มีอยู่หรือสร้างและสลับไปยัง branch ใหม่ได้

วิธีใช้

สลับ branch

$ git checkout <branch-name>

สร้าง และสลับไป branch นั้นเลย

$ git checkout -b <branch-name>

5. git add

คำสั่ง git adds จะเพิ่มการเปลี่ยนแปลงของเราในไฟล์ไปยัง staging ซึ่งเราสามารถเปรียบเทียบเวอร์ชั่นในเครื่องและเวอร์ชันบน Git server ได้

ก่อนที่เราจะ Commit ไฟล์ใหม่หรือไฟล์ที่ถูกแก้ไข ควรเพิ่มไฟล์นั้นลง staging โดยใช้คำสั่ง git add

วิธีใช้

เพิ่มไฟล์ใหม่ที่กำหนด

$ git add <file-name-1> <file-name-2>

เพิ่มไฟล์ใหม่ทั้งหมด และลบไฟล์

$ git add -A

เพิ่มไฟล์ที่ถูกแก้ไข และลบไฟล์

$ git add -U

6. git commit

git commit จะบันทึกการเปลี่ยนแปลงในพื้นที่เก็บข้อมูลในเครื่องของเรา ทุกครั้งที่เรายืนยันการเปลี่ยนแปลงโค้ด เราจะต้องใส่คำอธิบายสั้นๆ (Commit message) เกี่ยวกับการเปลี่ยนแปลงที่เกิดขึ้น ข้อความยืนยันนี้ช่วยให้ผู้อื่นเข้าใจการเปลี่ยนแปลงที่เกิดขึ้น

วิธีใช้

commit ไฟล์ทุกไฟล์ที่เราทำการ git add ไปแล้ว

$ git commit -a
💡
Note: หลังจากใช้คำสั่งแล้ว จะมีการให้เราระบุคำอธิบาย

commit ไฟล์พร้อมคำอธิบาย

$ git commit -m "<commit-message>"

เราสามารถแทนที่สองคำสั่งก่อนหน้าด้วยคำสั่งเดียว

$ git commit -am "<commit-message>"

แก้ไข Commit ครั้งล่าสุดด้วยการเปลี่ยนแปลงล่าสุดเป็น Commit ใหม่

$ git commit --amend -m “<commit-message>"

7. git push

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

วิธีใช้

$ git push 
# หรือ 
$ git push <remote> <branch-name>

หาก branch ของเราเป็นสาขาที่สร้างขึ้นใหม่ เราจะต้องอัพโหลด branch โดยใช้คำสั่ง

$ git push --set-upstream <remote> <branch-name>
# หรือ 
$ git push -u origin <branch-name>

8. git pull

git pull ดึงการเปลี่ยนแปลงที่อัปโหลดล่าสุดจาก Git server ไปยังที่เก็บข้อมูลในเครื่องเรา เพื่อให้เราสามารถรับการอัปเดตล่าสุดจากเพื่อนร่วมทีมของเราได้

วิธีใช้

$ git pull 
# หรือ 
$ git pull <remote> 
# หรือ 
$ git pull <remote> <branch-name>

9. git merge

คำสั่ง git merge จะเป็นการรวม branch 2 branch เข้าด้วยกัน โดยทั่วๆ ไปจะเป็นการรวมจาก feature (branch) ไปยัง main (branch) ทั้งนี้ขึ้นอยู่กับ Git workflow ของเรา

มันจะสร้างการ Commit ใหม่โดยอัตโนมัติหากไม่มีข้อขัดแย้งของโค็ด ก่อนที่จะรันคำสั่ง git merge เราควรอยู่ใน branch เฉพาะที่คุณต้องการรวมกับ branch หลักของเรา

วิธีใช้

เปลี่ยนไปยัง branch ที่เราต้องการรวม

$ git checkout <branch>
💡
หมายเหตุ: ก่อนที่จะรวม เราควรอัปเดตการพัฒนาในพื้นที่ branch หลักของเรา เนื่องจากเพื่อนร่วมทีมของเราอาจรวมเข้ากับ branch หลัก ในขณะที่เราทำงานใน branch ของเรา

คำสั่งดึงข้อมูลล่าสุด

$ git pull or git fetch

หากไม่มีข้อขัดแย้งของโค็ด ในขณะที่ดึงการอัปเดต เราสามารถรวม branch ของเราเข้ากับ branch หลักได้

$ git merge <branch-name>

10. git status

แสดงภาพรวมของสถานะปัจจุบันของพื้นที่เก็บข้อมูลของเรา

วิธีใช้

$ git status

มันจะแสดงข้อมูลเกี่ยวกับ branch ของเราดังนี้

  • ชื่อ branch ปัจจุบันของเรา ไม่ว่า branch ปัจจุบันของเราจะอัปเดตหรือไม่ก็ตาม
  • จำนวนการ commit ที่ branch ของเราอยู่หลัง branch ของ Git server
  • การเปลี่ยนแปลงที่ staged และที่ commit แล้ว
  • การเปลี่ยนแปลงที่ไม่ได้อยู่ใน staged
  • Un-tracked ไฟล์

บทสรุป

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

Happy coding 😄