คำสั่ง Git ที่ใช้งานบ่อย

ขอเกริ่นไว้นิดนึงสำหรับคนที่ไม่รู้จัก  Git นะครับ Git คือ Version Control ที่ไว้ช่วยเก็บรักษาไฟล์หรือแชร์ Source Code ให้ผู้อื่นได้ สามารถย้อนกลับไปยัง Version ต่างๆได้ หรือ Track ได้ว่าใครเปลี่ยนแปลงแก้ไข Code หรือเพิ่มไฟล์ จริงๆข้อดีมีเยอะแยะมากมาย หรือวิธีติดตั้ง สามารถไปหาอ่านตามเว็บต่างๆได้ครับ แต่บทความนี้ขอเน้นการใช้งานคำสั่ง Git พื้นฐานและใช้บ่อยเป็นหลัก นะครับเรามาเริ่มกันเลยดีกว่า

ตั้งค่า Git

เริ่มตั้งค่าโดยใส่ชื่อและอีเมล์

แสดงสถานะการตั้งค่า

ตั้งค่าให้ git บันทึก username, password จำไว้ในเครื่องเราเอง เพื่อไม่ให้ถาม username, password ในตอนเวลาเรา pull โค้ดลงมา

สร้าง Project ด้วย Git

สำหรับสร้าง Git Repository โดยเมื่อสร้าง Directory ขึ้นมาแล้ว จากนั้นให้เข้าไปใน Directory และใช้คำสั่งตามด้านล่างนี้

กรณีมี Repository หรือ Project ที่ใช้ Git อยู่แล้ว

สามารถดึงหรือ Clone ลงมาที่ Directory เครื่องเราได้ 2 รูปแบบ ดังนี้

1.  ดึงข้อมูลจาก Repository ที่อยู่บนเครื่องของเราเอง

2.  ดึงข้อมูลจาก Repository จากเครื่องอื่น

คำสั่งเพื่อบันทึก

คำสั่งเพื่อเปลี่ยนสถานะ (Stage) รอการ Commit

คำสั่งเพื่อบันทึกไฟล์ทั้งหมด ขั้นตอนนี้จะ Commit ไปที่ Repository ภายในเครื่องของเรา (Local) ส่วน -m เป็น Option “เพื่อใส่ข้อความว่าได้แก้ไขอะไรลงไปบ้าง”

หรือจะรวมทั้ง add และ commit ในคราวเดียวกันก็ใช้ -am

กรณีที่ commit ไปแล้ว แต่ลืมและมีแก้อะไรเล็กน้อย ทำให้ต้อง commit เพิ่มเติมเข้าไป กลายเป็นว่า commit สิ่งที่เหมือนกันเข้าไปซ้ำๆ “ทำให้ Commit มันรกโดยใช่เหตุ” ให้แก้ไขโดยเพิ่ม –amend เข้าไปด้วย เพื่อที่มันจะได้รวบเป็น commit เดียวกัน

คำสั่งเพื่อส่งไฟล์ขึ้นไปที่ Repository บน Git (Remote)

สั่งคำเพื่อซ่อนการเปลี่ยนแปลง

สั่งคำเพื่อเก็บซ่อน Code ที่ทำการเปลี่ยนแปลง โดยประโยชน์ของมันคือ ในขณะที่เรากำลังทำงานแล้วบังเอิญมีงานแก้ Bug ด่วนแทรกเข้ามาพอดี ปัญหาคือถ้าเราแก้ Bug เวลา Push ขึ้นไปก็จะติด Code ที่เรากำลังทำอยู่ตอนนั้นไปด้วย Git stash จึงเข้ามาเพื่อช่วยเก็บซ่อน Code นี้ไว้ก่อนในเครื่องเราชั่วคราว เพื่อไม่ให้มีผลกระทบตามที่กล่าวมาโดยเราสามารถใช้คำสั่ง

หลังจากใช้คำสั่งด้านบน จะสังเกตได้ว่า Code ที่เพิ่งเขียนไปจะหายไป เพราะมันถูกซ่อนนั่นเอง โดยเราสามารถดูรายการทั้งหมดได้โดยสั่ง

เมื่อเราแก้ Bug และ Push ขึ้นไปแล้ว เราอยากจะนำ Code ที่ซ่อนไว้กลับมาทำต่อเราเพียงใช้คำสั่ง

สามารถ Clear รายการที่ถูกซ่อน โดยใช้คำสั่ง

คำสั่งเพื่อลบหรือยกเลิก

คำสั่งยกเลิกเมื่อเราสั่ง git add ไปแล้ว

คำสั่งยกเลิกเมื่อเราสั่ง git commit ไปแล้วบน Local

–hard คือ จะลบสิ่งที่เคย commit ออกไปเลย กลับไปยัง commit ก่อนหน้า

–soft คือ จะนำสิ่งที่เคย commit กลับมายังสถานะ staged เหมือนก่อน commit แต่ add ไปหมดแล้ว

หรือถ้ารู้ชื่อไฟล์ อาจจะใช้

คำสั่งดูสถานะ

เพื่อดูการเปลี่ยนแปลงของ Repository บนเครื่องเรา (Local) เอง เช่น เพิ่ม ,แก้ไข,ลบ ไฟล์ต่างๆ

คำสั่งดูความแตกต่าง

ใช้สำหรับดูว่า Code มีอะไรเปลี่ยนแปลงและแตกต่างไปบ้างเช่น มี เพิ่ม ลบ แก้ไข อะไรไปบ้าง โดยเทียบกับ Commit ที่ผ่านมา

คำสั่งดู Log

คำสั่งใช้ดูประวัติการ commit ต่างๆ ของRepo โดยจะแสดง เลขcommit, commit message, ชื่อผู้เขียน, email, และเวลาที่ commit นั้นๆ

ส่วนแบบนี้แสดงเป็นสี บอกวัน และคนที่ Commit รวมถึงเส้น Branch

ซึ่งแน่นอนคำสั่งมันค่อนข้างยาวไป ดังนั้นให้เพิ่ม Alias คำสั่งเหล่านั้น ไว้ใช้ใน Git Config และ Set เป็น Global เพื่อไว้ใช้งานได้ทุกๆที่บนเครื่องของเรา ดังนี้

เวลาจะเรียกดู ก็ใช้คำสั่งสั้นๆ

คำสั่งดึงไฟล์ที่เปลี่ยนแปลงจาก Remote Repository

เพื่อใช้ดึงความเปลี่ยนแปลงจาก Remote Repository มายัง Local  Repositoryมายัง

คำสั่งดึงไฟล์ หรืออัพเดท Source Code ภายในเครื่อง (Local) ให้ตรงกับ Repository (Remote) โดยคำสั่ง git pull นั้นจะทำการ git fetch และ git merge ไปด้วย

คำสั่งเกี่ยวกับ Branch

Branch มีเพื่อเราจะได้แยกการพัฒนาออกจาก Branch หลัก โดย Branch เริ่มต้นจะชื่อว่า Master จากนั้นเมื่อพัฒนาเสร็จเราจึงทำการ Merge กลับมายัง Master อีกครั้ง

คำสั่งสร้าง Branch

คำสั่งดูรายชื่อ branch ทั้งหมด

สมมติเรามี Branch : master , dev , fixbug ผลลัพท์จะแสดง ประมาณนี้ เครื่องหมายดอกจัน * หมายถึงเรากำลังอยู่ที่ Branch นั้น

ลบ Branch (Local)

ลบ Branch (Remote)

คำสั่งสลับเปลี่ยนไปยัง Branch ที่มีอยู่แล้ว

คำสั่งเปลี่ยนไปยัง Branch ที่ไม่มี นั่นคือทำการสร้าง Branch ใหม่และสลับไป Branch นั้นทันที

คำสั่งเปลี่ยนไปยัง Branch ที่ไม่มี นั่นคือทำการสร้าง Branch ใหม่และสลับไป Branch นั้นทันที โดยอ้างอิง Commit ID (บางครั้งเราอาจจะต้องย้อนกลับไปยัง Code ชุดเก่า)

คำสั่งการรวม Branch มายัง Local

คำสั่งการรวม Branch มายัง Local (ไม่ใช่เป็น fast-forward)

ความแตกต่างระหว่างการใช้และไม่ใช้ –no-if

คำสั่งเกี่ยวกับ Remote

แสดงข้อมูล URL ของ Repository (Remote)

เพิ่ม URL ของ Repository (Remote)

เปลี่ยน URL ของ Repository (Remote)

ตั้งชื่อ Remote ใหม่ (เช่น เปลี่ยนจาก origin ไปเป็น destination จะใช้ git remote rename origin destination)

ลบ Remote

คำสั่งเกี่ยวกับ Tagging

แสดง Tag ทั้งหมด

แสดงเรียงจากวันที่สร้างล่าสุด

ค้นหา Tag

สร้าง Tag

คำสั่งเพื่อส่งไฟล์ขึ้นไปที่ Repository บน Git (Remote) โดยอ้างอิง Tag

คำสั่งอื่นๆ

คำสั่งย้อนกลับไปยัง Commit ล่าสุด หรือยกเลิกการแก้ไขไฟล์

สำหรับดู Version ของ Git

สำหรับดูคำสั่ง Git ว่ามีคำสั่งอะไรบ้างและใช้งานอย่างไร

แสดงไฟล์ที่อยู่ในสถานะ Untracked

ลบไฟล์ที่อยู่ในสถานะ Untracked

คำสั่งอาจจะไม่ครบถ้วน เพราะตอนนี้ผมใช้แค่นี้ครับ คิดว่าถ้ามีคำสั่งอื่นๆก็จะมาอัพเดทในบทความนี้ที่เดียวเลยอีกครั้งครับ ^^

Author:

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