Rebasing
การรีเบสทำให้คุณสามารถรวมการเปลี่ยนแปลงจากสาขาหนึ่งไปยังอีกสาขาหนึ่งได้โดยแก้ไขประวัติการคอมมิต มันเล่นซ้ำคอมมิทจากสาขาต้นทางไปยังสาขาเป้าหมาย ซึ่งส่งผลให้ประวัติการกระทำที่สะอาดและเป็นเส้นตรงมากขึ้น
ตัวอย่าง: สมมติว่าคุณมีฟีเจอร์สาขาที่เรียกใช้ feature-branch
และคุณต้องการรวมการเปลี่ยนแปลงล่าสุดจาก main
สาขา คุณสามารถใช้คำสั่งต่อไปนี้:
git checkout feature-branch
git rebase main
สิ่งนี้จะใช้คอมมิชชันจาก main
สาขาไปยังไฟล์ feature-branch
. ข้อขัดแย้งใด ๆ จะต้องได้รับการแก้ไขในระหว่างกระบวนการรีบูต
Stashing
การเก็บถาวรทำให้คุณสามารถบันทึกการเปลี่ยนแปลงปัจจุบันของคุณ ซึ่งยังไม่พร้อมที่จะกระทำ และเปลี่ยนกลับเป็นไดเร็กทอรีการทำงานใหม่ทั้งหมดเป็นการชั่วคราว สิ่งนี้มีประโยชน์เมื่อคุณต้องการเปลี่ยนไปใช้สาขาอื่นหรือทำงานในคุณลักษณะอื่นโดยไม่ต้องยอมรับการเปลี่ยนแปลงที่คุณกำลังดำเนินการอยู่
ตัวอย่าง: สมมติว่าคุณกำลังทำงานในสาขาฟีเจอร์และคุณได้ทำการเปลี่ยนแปลงบางอย่าง แต่คุณต้องเปลี่ยนไปใช้สาขาอื่น คุณสามารถใช้คำสั่งต่อไปนี้เพื่อซ่อนการเปลี่ยนแปลงของคุณ:
git stash
หลังจากเปลี่ยนเป็นสาขาใหม่ คุณสามารถใช้การเปลี่ยนแปลงที่ซ่อนไว้ได้โดยใช้:
git stash apply
Git Hooks
Git Hooks
เป็นสคริปต์ที่ทริกเกอร์โดยเหตุการณ์เฉพาะของ Git เช่น pre-commit, post-commit, pre-push เป็นต้น สคริปต์เหล่านี้อนุญาตให้คุณดำเนินการบางอย่างโดยอัตโนมัติหรือบังคับใช้กฎเฉพาะในเวิร์กโฟลว์ของคุณ
ตัวอย่าง: สมมติว่าคุณต้องการรัน linter บนโค้ดของคุณก่อนที่จะคอมมิท คุณสามารถสร้างสคริปต์ hook ก่อนคอมมิตที่ทริกเกอร์ linter และป้องกันการคอมมิตหากมีข้อผิดพลาดใน linting
Git Submodule
Git Submodule
อนุญาตให้คุณรวมที่เก็บ Git อื่นเป็นไดเร็กทอรีย่อยภายในที่เก็บหลักของคุณ สิ่งนี้มีประโยชน์เมื่อคุณมีโปรเจ็กต์ที่ขึ้นอยู่กับไลบรารีหรือส่วนประกอบภายนอก
ตัวอย่าง: คุณมีโครงการที่ต้องการห้องสมุดเฉพาะ แทนที่จะทำสำเนาโค้ดของไลบรารีในที่เก็บของคุณ คุณสามารถเพิ่มเป็นโมดูลย่อยได้ ด้วยวิธีนี้ คุณสามารถแยกรหัสห้องสมุดและอัปเดตได้อย่างง่ายดายเมื่อจำเป็น
Git Revert and Git Reset
Git Revert
ยกเลิกการกระทำก่อนหน้านี้โดยการสร้างการกระทำใหม่ที่ยกเลิกการเปลี่ยนแปลงที่เกิดขึ้นในการกระทำเดิม Git Reset
ในทางกลับกัน อนุญาตให้คุณย้ายตัวชี้สาขาไปยังการคอมมิตอื่น ละทิ้งการคอมมิตจากประวัติการคอมมิตอย่างมีประสิทธิภาพ
ตัวอย่าง: หากคุณต้องการเลิกทำคอมมิทครั้งล่าสุด คุณสามารถใช้ git revert HEAD
เพื่อสร้างคอมมิทใหม่ที่ยกเลิกการเปลี่ยนแปลงที่ทำในคอมมิทครั้งล่าสุด หากคุณต้องการละทิ้งการคอมมิตครั้งล่าสุด คุณสามารถใช้ git reset HEAD~1
เพื่อย้ายตัวชี้แบรนช์กลับทีละคอมมิท
แนวคิดขั้นสูงเหล่านี้ใน Git มอบความสามารถอันทรงพลังในการจัดการพื้นที่เก็บข้อมูลของคุณอย่างมีประสิทธิภาพ การทำความเข้าใจวิธีใช้งานและเวลาที่จะใช้จะช่วยปรับปรุงเวิร์กโฟลว์ Git และการจัดการโครงการของคุณได้อย่างมาก