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

การเพิ่มข้อมูลทำได้โดยใช้คำสั่ง git add

เริ่มต้นด้วยการทดลองสร้างไฟล์ โดยเพิ่มข้อความลงในไฟล์ที่สร้าง ด้วยคำสั่ง

$ pico Changefile.txt

หรือใช้ editor อื่นๆ เพื่อเพิ่มข้อความ “change me” ลงในไฟล์ Changefile.txt

$ pico Deletefile.txt

หรือใช้ editor อื่นๆ  เพิ่มข้อความ “delete me” ลงใน Deletefile.txt

ตรวจสอบข้อความในไฟล์ทั้ง 2 ด้วยคำสั่ง

$ cat Changefile.txt

และ

$ cat Deletefile.txt

ผลลัพธ์ที่ได้จากคำสั่งด้านบน

หลังจากสร้าง และเพิ่มข้อความลงในไฟล์ทั้ง 2 แล้ว ทดลองตรวจสอบสถานะด้วยคำสั่ง git status

ผลการตรวจสอบด้วยคำสั่ง git status จะเห็นว่าไฟล์ทั้ง 2 อยู่ในสถานะ Untracked ซึ่งจะไม่สามารถติดตามการแก้ไขรายละเอียดของไฟล์ได้ วิธีการเปลี่ยนสถานะจาก untracked เป็น track จะใช้คำสั่ง git add ที่กล่าวมาในตอนต้น

$ git add Changefile.txt

และ

$ git add Deletefile.txt

จากนั้นทดลองตรวจสอบด้วยคำสั่ง git status อีกครั้ง

จะเห็นว่าหลังจากใช้คำสั่ง git add ไฟล์ทั้ง 2 ถูกเปลี่ยนสถานะเป็น tracked เรียบร้อยแล้ว และแสดง state ว่าเป็น new file

คำสั่ง git add เป็นคำสั่งที่ใช้ในการเปลี่ยนแปลงสถานะจาก untracked เป็น tracked เท่านั้น

อีกคำสั่งหนึ่งที่มีความสำคัญกับการใช้งาน git คือ git commit โดยคำสั่งนี้ มีไว้สำหรับการบันทึก state  ณ ขณะที่ใช้คำสั่ง commit ประโยชน์ของการใช้คำสั่งนี้คือ บันทึก state ของเอกสารเพื่อตรวจสอบความแตกต่างของไฟล์ที่ track ในแต่ละเวอร์ชันที่ทำการ commit และสามารถย้อนกลับได้

ทดลอง commit และกำหนด massage สำหรับการ commit ครั้งแรก

$ git commit -m Initial-State

ทดสอบเพิ่มเติมโดยการทดลอง เพิ่มข้อความลงในไฟล์ Changefile.txt, ลบไฟล์ Deletefile.txt และเพิ่มไฟล์ชื่อว่า Addfile.txt แล้วตรวจสอบสถานะด้วยคำสั่ง git status อีกครั้ง

ผลลัพธ์ด้านบนแสดงให้เห็นว่า ไฟล์ที่ใช้คำสั่ง git add ทั้ง 2 ไฟล์ก่อนหน้านี้ แสดงรายละเอียดการเปลี่ยนแปลง ส่วนไฟล์ที่ชื่อว่า Addfile.txt นั้น เป็นไฟล์ที่เพิ่งสร้างขึ้น และยังอยู่ในสถานะ untracked ซึ่งหากต้องการ track ก็ทำได้โดยใช้คำสั่ง

$ git add Addfile.txt

และหากต้องการบันทึก state การเปลี่ยนแปลงนี้ไว้ ก็ให้ใช้คำสั่ง

$ git commit -a -m "delete - Deletefile.txt and add - Addfile.txt"

สำหรับข้อความประกอบ commit สามารถระบุข้อความได้ตามต้องการ

เราสามารถสร้างเงื่อนไขของการ commit ได้ โดยสามารถกำหนดว่า เอกสารใด หรือเอกสารประเภทใด จะยกเว้น โดยการระบุเงื่อนไขเหล่านั้น ไว้ในไฟล์ .gitignore รายชื่อเอกสารที่ระบุในไฟล์ .gitignore นั้น จะไม่ถูก commit และถือว่าเป็นไฟล์ที่อยู่ในเงื่อนไขยกเว้นการ commit โดยใช้คำสั่ง

$ pico .gitignore

โดยระบุชื่อไฟล์ที่ต้องการยกเว้นการ commit ไว้ในไฟล์ดังกล่าว ตัวอย่างที่จะแสดงให้เห็นนี้ ได้มีการสร้างไฟล์ที่ชื่อว่า Newfile.txt โดยระบุชื่อไฟล์ดังกล่าวไว้ในไฟล์ .gitignore

ทดลองสร้างไฟล์ชื่อว่า Newfile.txt และ Oldfile.txt โดยระบุเฉพาะชื่อไฟล์ Newfile.txt ลงในไฟล์ .gitignore แล้วดูผลลัพธ์จากการใช้คำสั่ง git status

จะสังเกตเห็นว่าไฟล์ที่อยู่ในสถานะ untracked มีเพียงไฟล์ที่ชื่อว่า Oldfile.txt ส่วนไฟล์ที่ชื่อว่า Newfile.txt นั้น จะไม่แสดงให้เห็นเนื่องจากถูกระบุอยู่ในไฟล์ .gitignore

สำหรับเรื่อง state ของการ commit เพื่อให้เห็นภาพได้ชัดเจนเกี่ยวกับการทำงาน จะอธิบายด้วยภาพด้านล่างนี้ครับ

 

Comments are closed.