แนวคิดขั้นสูงใน Git: สำรวจคุณสมบัติและเทคนิคอันทรงพลัง

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 และการจัดการโครงการของคุณได้อย่างมาก