1 มิ.ย. เวลา 12:57 • การศึกษา
Git By Shoper Gamer

Working Directory คืออะไร

โดย
ในระบบควบคุมเวอร์ชัน (Version Control System) โดยเฉพาะ Git การเข้าใจแนวคิดเรื่อง Working Directory เป็นพื้นฐานสำคัญสำหรับนักพัฒนา Working Directory ทำหน้าที่เป็นพื้นที่ทำงานหลักที่นักพัฒนาสามารถแก้ไขไฟล์ และ เตรียมการเปลี่ยนแปลงก่อนบันทึกอย่างเป็นทางการลงใน Repository
บทความนี้จะอธิบายอย่างละเอียดว่า Working Directory คืออะไร ทำงานอย่างไร มีบทบาทอย่างไรในกระบวนการพัฒนาโปรแกรม พร้อมตัวอย่างการใช้งานจริง
  • ​Working Directory คืออะไร
Working Directory (หรือ Working Tree) คือ โฟลเดอร์ปัจจุบันในเครื่องคอมพิวเตอร์ของคุณที่ประกอบด้วยไฟล์และโฟลเดอร์ของโปรเจกต์ที่คุณกำลังทำงานอยู่ โดย Working Directory จะเชื่อมโยงกับ Git Repository (ผ่านคำสั่ง git init หรือ git clone)
  • ​ลักษณะสำคัญของ Working Directory
- เป็นพื้นที่ทำงานจริงที่คุณแก้ไขไฟล์ต่างๆ
- ยังไม่มีการบันทึกการเปลี่ยนแปลงสู่ระบบเวอร์ชันคอนโทรล
- ไฟล์ใน Working Directory อาจอยู่ในสถานะใดสถานะหนึ่งจาก 3 สถานะหลักของ Git:
1. Untracked - ไฟล์ใหม่ที่ยังไม่ถูกติดตามโดย Git
2. Modified - ไฟล์ที่มีการเปลี่ยนแปลงแต่ยังไม่ได้เตรียม commit
3. Staged - ไฟล์ที่เตรียมพร้อมสำหรับ commit
  • ​Working Directory ทำงานอย่างไร
Working Directory เป็นส่วนหนึ่งในกระบวนการทำงานของ Git ที่มีขั้นตอนดังนี้
1. เริ่มต้น Working Directory
- สร้างใหม่ด้วย `git init`
- หรือได้มาจาก `git clone` repository ที่มีอยู่
2. แก้ไขไฟล์ใน Working Directory
- นักพัฒนาทำการเปลี่ยนแปลงไฟล์ต่างๆ ในพื้นที่นี้
3. เตรียมไฟล์สำหรับ commit
- ใช้ `git add` เพื่อย้ายไฟล์จาก Working Directory ไปยัง Staging Area
4. บันทึกการเปลี่ยนแปลง
- ใช้ `git commit` เพื่อบันทึกการเปลี่ยนแปลงจาก Staging Area ไปยัง Local Repository
5. ซิงค์กับการ Repository กลาง
- ใช้ `git push` เพื่ออัปโหลดการเปลี่ยนแปลงไปยัง Remote Repository
  • ​ประเภทของ Working Directory
Working Directory สามารถแบ่งได้เป็น 2 ประเภทหลัก:
☆ 1. Local Working Directory
- อยู่ในเครื่องคอมพิวเตอร์ส่วนตัว
- นักพัฒนาสามารถทำงานได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต
- การเปลี่ยนแปลงจะถูกบันทึกเฉพาะในเครื่องจนกว่าจะ push ขึ้น repository กลาง
☆ 2. Shared Working Directory
- อยู่ในเซิร์ฟเวอร์ที่ทีมงานสามารถเข้าถึงร่วมกัน
- มักใช้ในระบบควบคุมเวอร์ชันแบบ Centralized (เช่น SVN)
- ต้องเชื่อมต่อกับเซิร์ฟเวอร์ตลอดเวลาในการทำงาน
  • ​ประโยชน์
1. พื้นที่ทดลองอย่างอิสระ
- สามารถทดลองแก้ไขโค้ดโดยไม่กระทบ repository จนกว่าจะพร้อม commit
2. ทำงานออฟไลน์ได้
- สำหรับระบบแบบ Distributed VCS (เช่น Git) สามารถทำงานได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต
3. จัดการการเปลี่ยนแปลงแบบเป็นขั้นตอน
- สามารถเลือกได้ว่าจะบันทึกการเปลี่ยนแปลงไฟล์ใดบ้าง
4. ป้องกันความขัดแย้ง
- การทำงานใน local ก่อน push ขึ้นเซิร์ฟเวอร์ช่วยลดปัญหาความขัดแย้งเมื่อทำงานเป็นทีม
5. ยืดหยุ่นในการพัฒนา
- สามารถสร้าง branch ต่างๆ เพื่อทดสอบฟีเจอร์ใหม่ได้โดยไม่รบกวนโค้ดหลัก
  • ​ตัวอย่างการใช้งาน
☆ 1. การเริ่มต้น Working Directory ใหม่
# สร้างโฟลเดอร์ใหม่
mkdir my-project
cd my-project
# เริ่มต้น Git repository
git init
# สร้างไฟล์ใหม่
echo "Hello World" > README.md
1
☆ 2. การตรวจสอบสถานะ Working Directory
# ตรวจสอบสถานะไฟล์ใน Working Directory
git status
# ผลลัพธ์จะแสดง:
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
☆ 3. การเตรียมไฟล์สำหรับ commit
# เพิ่มไฟล์ไปยัง staging area
git add README.md
# หรือเพิ่มทุกไฟล์ที่เปลี่ยนแปลง
git add .
☆ 4. การย้อนกลับการเปลี่ยนแปลงใน Working Directory
# ยกเลิกการเปลี่ยนแปลงในไฟล์ที่แก้ไข (ก่อน add)
git checkout -- filename
# ลบไฟล์ออกจาก staging area (หลัง add แต่ก่อน commit)
git reset HEAD filename
☆ 5. การทำงานกับ Branch ใน Working Directory
# สร้าง branch ใหม่
git branch new-feature
# เปลี่ยนไปทำงานใน branch นั้น
git checkout new-feature
# ทำการเปลี่ยนแปลงต่างๆ ใน Working Directory
# ...แก้ไขไฟล์...
# บันทึกการเปลี่ยนแปลง
git add .
git commit -m "Implement new feature"
✏️ Shoper Gamer
Credit :
👇
  • ​https://www.geeksforgeeks.org/states-of-a-file-in-git-working-directory/
  • ​https://www.neonscience.org/resources/learning-hub/tutorials/bash-setup-git
  • ​https://www.gatlin.io/content/git-working-directory-and-index

ดูเพิ่มเติมในซีรีส์

โฆษณา