Skip to content

staging and commit

staging คือการเลือกไฟล์เพื่อที่ขะจะ commit

staging to commit

bash
git add <file_name>

commit แล้ว

ขั้นตอนการ commit

  1. เพิ่ม file change เข้าสู่ staging area (git add)
bash
git add file_name
  1. บันทึกการเปลี่ยนแปลง (git commit)
bash
git commit -m "message"

เครื่องมือช่วยให้การ commit ง่ายขึ้น

commit

แนะนำให้ใช้ cz-git.qbb.sh faviconczgit เพื่อการ commit ที่ดีขึ้น

ขั้นตอนการ commit

  1. เพิ่ม file change เข้าสู่ staging area (git add)
  2. บันทึกการเปลี่ยนแปลง (git commit)

merge

pull request and merge

ขั้นตอนกร merge

  1. สร้าง branch ใหม่ เช่น feature/fix
bash
git checkout -b feature/fix
  1. push branch ไปยัง remote repository
bash
git push -u origin feature/fix
  1. เปิด PR เพื่อให้ทีม review การเปลี่ยนแปลง

  1. หลังจาก approve แล้วจะทำการ merge เข้า branch หลัก

merge conflict

เกิดเมื่อมีหลายคนแก้ไขไฟล์เดียวกันในส่วนเดียวกันพร้อมๆ กัน เช่น:

  • คน A แก้ไขบรรทัดที่ 10 ของไฟล์ X แล้ว push ขึ้นไป
  • คน B ก็แก้ไขบรรทัดที่ 10 ของไฟล์ X เหมือนกันแต่คนละวิธี แล้วพยายาม push ภายหลัง Git จะไม่รู้ว่าต้องใช้การเปลี่ยนแปลงของใคร จึงต้องให้เราตัดสินใจด้วยตัวเอง

release

ขั้นตอนการ release

  1. เพิ่ม version เข้าสู่ package.json
  2. สร้าง tag
  3. push tag
  4. release

เครื่องมือจัดการ release

แนะนำใช้ github.com faviconrelease-it

เครื่องมือช่วยจัดการการ release เวอร์ชันใหม่ของโปรเจค โดยสามารถ:

  • เพิ่มเวอร์ชันอัตโนมัติตาม semantic versioning
  • สร้าง changelog
  • publish ไปยัง npm/github releases

history

Git history คือประวัติการเปลี่ยนแปลงทั้งหมดของโปรเจค ประกอบด้วย:

  • Commit แต่ละครั้งที่บันทึกการเปลี่ยนแปลง
  • ผู้ที่ทำการเปลี่ยนแปลง
  • วันที่และเวลาที่เปลี่ยนแปลง
  • ข้อความอธิบายการเปลี่ยนแปลง

File History

เปิดใน vscode กด open change

หรือถ้าให้ง่าย ติดตั้ง marketplace.visualstudio.com faviconGit File History ใน vscode

เครื่องมือช่วยดูประวัติการเปลี่ยนแปลงของไฟล์แบบ visual ใน VS Code

commit Log

บันทึกการเปลี่ยนแปลงทั้งหมดของโปรเจค ดูได้โดย:

bash
git log

สามารถเพิ่ม options ต่างๆ เช่น:

  • --oneline แสดงแบบย่อ
  • --graph แสดงเป็นกราฟ
  • --author="ชื่อ" กรองตามผู้แก้ไข

แนะนำ gitui

หรือ vscodesource control

repo at commit